2022-01-24 03:28:16 +00:00
|
|
|
cmake_minimum_required(VERSION 3.10)
|
|
|
|
|
|
|
|
set(BOT_INCLUDEDIR ${CMAKE_CURRENT_SOURCE_DIR}/include)
|
|
|
|
|
2022-01-25 18:13:04 +00:00
|
|
|
project(LaikaBot VERSION 1.0)
|
2022-01-24 03:28:16 +00:00
|
|
|
|
|
|
|
# Put CMake targets (ALL_BUILD/ZERO_CHECK) into a folder
|
|
|
|
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
|
|
|
|
|
|
|
|
# compile LaikaBot
|
|
|
|
file(GLOB_RECURSE BOTSOURCE ${CMAKE_CURRENT_SOURCE_DIR}/src/**.c)
|
2022-03-14 05:51:11 +00:00
|
|
|
file(GLOB_RECURSE BOTHEADERS ${CMAKE_CURRENT_SOURCE_DIR}/include/**.h)
|
2022-03-17 23:22:26 +00:00
|
|
|
|
|
|
|
# include platform specific backends
|
|
|
|
set(BOTPLATFORMSOURCE)
|
|
|
|
set(BOTPLATFORMLIBS)
|
|
|
|
if(WIN32)
|
|
|
|
file(GLOB_RECURSE BOTPLATFORMSOURCE ${CMAKE_CURRENT_SOURCE_DIR}/win/**.c)
|
|
|
|
elseif(UNIX AND NOT APPLE)
|
|
|
|
file(GLOB_RECURSE BOTPLATFORMSOURCE ${CMAKE_CURRENT_SOURCE_DIR}/lin/**.c)
|
|
|
|
set(BOTPLATFORMLIBS util)
|
|
|
|
endif ()
|
|
|
|
|
|
|
|
add_executable(LaikaBot ${BOTSOURCE} ${BOTHEADERS} ${BOTPLATFORMSOURCE})
|
|
|
|
target_link_libraries(LaikaBot PUBLIC LaikaLib ${BOTPLATFORMLIBS})
|
2022-01-24 03:28:16 +00:00
|
|
|
|
|
|
|
# add the 'DEBUG' preprocessor definition if we're compiling as Debug
|
|
|
|
target_compile_definitions(LaikaBot PUBLIC "$<$<CONFIG:Debug>:DEBUG>")
|
|
|
|
|
|
|
|
# add include directory
|
2022-05-01 19:21:44 +00:00
|
|
|
target_include_directories(LaikaBot PUBLIC ${BOT_INCLUDEDIR})
|
|
|
|
|
|
|
|
# strip symbols for POSIX-like binaries
|
|
|
|
if((UNIX AND NOT APPLE) AND NOT RAWCMAKEBUILDTYPE STREQUAL "debug")
|
|
|
|
message(STATUS "Stripping LaikaBot symbols...")
|
|
|
|
target_link_options(LaikaBot PRIVATE -s)
|
|
|
|
endif ()
|