12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- cmake_minimum_required(VERSION 3.25)
- project(gaming_core)
- set(CMAKE_C_STANDARD 23)
- set(SRC
- "src/Image.c"
- "src/Network.c"
- "src/Window.c"
- )
- set(SRC_TESTS
- "test/Main.c"
- "test/modules/ImageTests.c"
- "test/modules/NetworkTests.c"
- )
- if("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
- set(COMPILE_OPTIONS "")
- set(LINK_OPTIONS "")
- set(LOG_LEVEL 2)
- set(DEFINITIONS "")
- else()
- set(DEFINITIONS ERROR_SIMULATOR CORE_CHECK_MEMORY)
- if(CMAKE_C_COMPILER_ID STREQUAL "GNU")
- set(COMPILE_OPTIONS --coverage)
- set(LINK_OPTIONS gcov)
- elseif(CMAKE_C_COMPILER_ID STREQUAL "Clang")
- set(COMPILE_OPTIONS -fprofile-instr-generate -fcoverage-mapping)
- set(LINK_OPTIONS ${COMPILE_OPTIONS})
- endif()
- set(LOG_LEVEL 4)
- list(APPEND SRC "src/ErrorSimulator.c")
- endif()
- if(CMAKE_C_COMPILER_ID STREQUAL "GNU")
- include("cmake/gcc_warnings.cmake")
- set(DEFINITIONS ${DEFINITIONS}
- bool=_Bool
- true=1
- false=0
- nullptr=0
- static_assert=_Static_assert
- )
- elseif(CMAKE_C_COMPILER_ID STREQUAL "Clang")
- include("cmake/clang_warnings.cmake")
- endif()
- add_library(gaming_core STATIC ${SRC})
- target_compile_options(gaming_core PUBLIC
- ${COMPILE_OPTIONS}
- ${WARNINGS}
- -fdiagnostics-color=always
- )
- target_compile_definitions(gaming_core
- PUBLIC CORE_LOG_LEVEL=${LOG_LEVEL}
- PRIVATE ${DEFINITIONS}
- )
- target_link_libraries(gaming_core
- PRIVATE m core ${LINK_OPTIONS}
- )
- target_include_directories(gaming_core SYSTEM
- PUBLIC ${CMAKE_INSTALL_PREFIX}/include
- PUBLIC enet/include
- PUBLIC stb
- )
- target_link_directories(gaming_core SYSTEM
- PUBLIC ${CMAKE_INSTALL_PREFIX}/lib
- )
- target_sources(gaming_core PUBLIC
- FILE_SET HEADERS
- BASE_DIRS include
- FILES
- ./include/core/Image.h
- ./include/core/Network.h
- ./include/core/Window.h
- )
- install(TARGETS gaming_core FILE_SET HEADERS)
- add_executable(test ${SRC_TESTS})
- target_link_libraries(test PRIVATE gaming_core)
- target_compile_definitions(test PRIVATE ${DEFINITIONS})
|