diff options
author | fschildt <florian.schildt@protonmail.com> | 2025-08-22 15:23:11 +0200 |
---|---|---|
committer | fschildt <florian.schildt@protonmail.com> | 2025-08-22 15:23:11 +0200 |
commit | 2050c0e0576f05156f192aa4caf48834d2f28b14 (patch) | |
tree | ee58bd35b0df0a1bacfbc9700ed99ce80c99294e /cmake |
Diffstat (limited to 'cmake')
-rw-r--r-- | cmake/CMakeLists.txt | 74 |
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) + |