aboutsummaryrefslogtreecommitdiff
path: root/cmake/CMakeLists.txt
diff options
context:
space:
mode:
authorfschildt <florian.schildt@protonmail.com>2025-08-22 15:23:11 +0200
committerfschildt <florian.schildt@protonmail.com>2025-08-22 15:23:11 +0200
commit2050c0e0576f05156f192aa4caf48834d2f28b14 (patch)
treeee58bd35b0df0a1bacfbc9700ed99ce80c99294e /cmake/CMakeLists.txt
first commitHEADmaster
Diffstat (limited to 'cmake/CMakeLists.txt')
-rw-r--r--cmake/CMakeLists.txt74
1 files changed, 74 insertions, 0 deletions
diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt
new file mode 100644
index 0000000..a613698
--- /dev/null
+++ b/cmake/CMakeLists.txt
@@ -0,0 +1,74 @@
+cmake_minimum_required(VERSION 3.20)
+
+project(fscord)
+
+set(FSCORD_ROOT_DIR "${CMAKE_CURRENT_LIST_DIR}/..")
+set(FSCORD_INC_DIR "${FSCORD_ROOT_DIR}/src" "${FSCORD_ROOT_DIR}/external")
+set(FSCORD_SRC_DIR "${FSCORD_ROOT_DIR}/src")
+
+set(CMAKE_C_COMPILER "clang")
+set(CMAKE_C_STANDARD 99)
+set(CMAKE_C_STANDARD_REQUIRED ON)
+set(CMAKE_C_EXTENSIONS OFF)
+set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
+
+
+set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/../data/fscord)
+set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/../data/fscord)
+add_executable(fscord)
+if(CMAKE_C_COMPILER_ID MATCHES "Clang|GNU")
+ target_compile_options(fscord PRIVATE -Wall -pedantic-errors)
+endif()
+target_sources(fscord PUBLIC
+ ${FSCORD_SRC_DIR}/client/main.c
+ ${FSCORD_SRC_DIR}/basic/arena.c
+ ${FSCORD_SRC_DIR}/basic/math.c
+ ${FSCORD_SRC_DIR}/basic/string32.c
+ ${FSCORD_SRC_DIR}/client/draw.c
+ ${FSCORD_SRC_DIR}/client/sound.c
+ ${FSCORD_SRC_DIR}/client/font.c
+ ${FSCORD_SRC_DIR}/client/login.c
+ ${FSCORD_SRC_DIR}/client/session.c
+ ${FSCORD_SRC_DIR}/client/string32_handles.c
+ ${FSCORD_SRC_DIR}/client/server_connection.c
+ ${FSCORD_SRC_DIR}/crypto/aes_gcm.c
+ ${FSCORD_SRC_DIR}/crypto/rsa.c
+ ${FSCORD_SRC_DIR}/os/sdl/sdl_window.c
+ ${FSCORD_SRC_DIR}/os/linux/linux_sound.c
+ ${FSCORD_SRC_DIR}/os/linux/linux_library.c
+ ${FSCORD_SRC_DIR}/os/linux/linux_memory.c
+ ${FSCORD_SRC_DIR}/os/linux/linux_net_secure_stream.c
+ ${FSCORD_SRC_DIR}/os/linux/linux_time.c
+ ${FSCORD_SRC_DIR}/os/linux/linux_file.c
+ ${FSCORD_ROOT_DIR}/external/stb/stb_truetype.c
+ ${FSCORD_ROOT_DIR}/external/stb/stb_image.c
+ ${FSCORD_ROOT_DIR}/external/stb/stb_image_write.c
+)
+target_include_directories(fscord PUBLIC ${FSCORD_INC_DIR})
+target_link_libraries(fscord SDL3 GL asound ssl crypto m)
+
+
+set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/../data/fscord_server)
+set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/../data/fscord_server)
+add_executable(fscord_server)
+if(CMAKE_C_COMPILER_ID MATCHES "Clang|GNU")
+ target_compile_options(fscord PRIVATE -Wall -pedantic-errors)
+endif()
+set_property(TARGET fscord_server PROPERTY C_STANDARD 99)
+target_sources(fscord_server PUBLIC
+ ${FSCORD_SRC_DIR}/basic/arena.c
+ ${FSCORD_SRC_DIR}/basic/string32.c
+ ${FSCORD_SRC_DIR}/os/linux/linux_memory.c
+ ${FSCORD_SRC_DIR}/os/linux/linux_net_secure_stream.c
+ ${FSCORD_SRC_DIR}/os/linux/linux_time.c
+ ${FSCORD_SRC_DIR}/os/linux/linux_file.c
+ ${FSCORD_SRC_DIR}/crypto/aes_gcm.c
+ ${FSCORD_SRC_DIR}/crypto/rsa.c
+ ${FSCORD_SRC_DIR}/server/main.c
+ ${FSCORD_SRC_DIR}/server/client_connections.c
+ ${FSCORD_SRC_DIR}/server/c2s_handler.c
+ ${FSCORD_SRC_DIR}/server/s2c_sender.c
+)
+target_include_directories(fscord_server PUBLIC ${FSCORD_INC_DIR})
+target_link_libraries(fscord_server ssl crypto)
+