cmake_minimum_required(VERSION 3.13) project(Kekrooms VERSION 1.0) option(KEKROOMS_DEBUG "Build with debug information" OFF) if(UNIX) set(KEKROOMS_TARGET_PLATFORM Linux) endif() if(WIN32) set(KEKROOMS_TARGET_PLATFORM Windows) endif() message("Debug: ${KEKROOMS_DEBUG}") message("Target platform: ${KEKROOMS_TARGET_PLATFORM}") set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib) set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin) set(KEKROOMS_RESOURCE_DIR "${PROJECT_SOURCE_DIR}/src/kekrooms/res") file(GLOB_RECURSE KEKROOMS_SOURCE_FILES "src/kekrooms/cpp/*.cpp") file(GLOB_RECURSE KEKROOMS_RESOURCE_FILES "${KEKROOMS_RESOURCE_DIR}/*") file(GLOB_RECURSE KEKROOMS_RELATIVE_RESOURCE_FILES RELATIVE ${KEKROOMS_RESOURCE_DIR} "${KEKROOMS_RESOURCE_DIR}/*") if(${KEKROOMS_DEBUG}) add_compile_options(-Wall -g) else() add_compile_options(-Wall -O3) endif() add_subdirectory(dependencies/kekengine) # kekrooms resources add_custom_target(kekrooms_res ALL DEPENDS ${KEKENGINE_RESOURCE_FILES}) add_dependencies(kekrooms_res kekengine_static) get_target_property(KEKENGINE_BINARY_DIR kekengine "RUNTIME_OUTPUT_DIRECTORY") add_custom_command(TARGET kekrooms_res PRE_BUILD BYPRODUCTS ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/resources.tar COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}" COMMAND ${CMAKE_COMMAND} -E copy "${KEKENGINE_BINARY_DIR}/resources.tar" "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/resources.tar" COMMAND ${CMAKE_COMMAND} -E chdir ${KEKROOMS_RESOURCE_DIR} tar rf ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/resources.tar ${KEKROOMS_RELATIVE_RESOURCE_FILES}) # kekrooms add_executable(kekrooms ${KEKROOMS_SOURCE_FILES}) add_dependencies(kekrooms kekrooms_res) find_package(PkgConfig REQUIRED) pkg_check_modules(FREETYPE REQUIRED freetype2) target_include_directories(kekrooms PUBLIC ${FREETYPE_INCLUDE_DIRS}) pkg_check_modules(BULLET REQUIRED bullet) target_include_directories(kekrooms PUBLIC ${BULLET_INCLUDE_DIRS}) if(WIN32) target_link_options(kekrooms PUBLIC -static-libgcc -static-libstdc++ -static) endif() target_link_libraries(kekrooms PUBLIC kekengine_static)