From 2050c0e0576f05156f192aa4caf48834d2f28b14 Mon Sep 17 00:00:00 2001 From: fschildt Date: Fri, 22 Aug 2025 15:23:11 +0200 Subject: first commit --- cmake/CMakeLists.txt | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 cmake/CMakeLists.txt (limited to 'cmake/CMakeLists.txt') 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) + -- cgit v1.2.3