cmake_minimum_required(VERSION 3.14...3.28) project(076cpputils LANGUAGES CXX) set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) set(BUILD_SHARED_LIBS OFF CACHE BOOL "静的リンク" FORCE) set(DB_NAME "test.db" CACHE STRING "データベースのパス" FORCE) option(GLFW_BUILD_EXAMPLES OFF) option(GLFW_BUILD_TESTS OFF) option(GLFW_BUILD_DOCS OFF) option(GLFW_INSTALL OFF) add_subdirectory(deps/glfw) add_subdirectory(deps/sqlite) add_library(076cpputils) file(GLOB_RECURSE CPPUTILS_SRC CONFIGURE_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/src/*.cc") file(GLOB_RECURSE CPPUTILS_INC CONFIGURE_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/include/*.hh") target_sources(076cpputils PRIVATE "${CPPUTILS_SRC}") target_include_directories(076cpputils PUBLIC include) if(CMAKE_BUILD_TYPE STREQUAL "Debug" OR CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo") set(DB_NAME "test.db" CACHE STRING "データベースのパス" FORCE) set(PRODUCTION_BUILD OFF CACHE BOOL "リリース版?" FORCE) target_compile_definitions(076cpputils PRIVATE DB_NAME="test.db" DB_RELATIVE_TO_EXE ) else() set(PRODUCTION_BUILD ON CACHE BOOL "リリース版?" FORCE) if(WIN32) set(DB_NAME "$ENV{LOCALAPPDATA}/076Studio/Test/data/test.db" CACHE STRING "データベースのパス" FORCE) elseif(UNIX) set(DB_NAME "$ENV{HOME}/.local/share/Test/test.db" CACHE STRING "データベースのパス" FORCE) else() set(DB_NAME "test.db" CACHE STRING "データベースのパス" FORCE) endif() target_compile_definitions(076cpputils PRIVATE PRODUCTION_BUILD DB_NAME="${DB_NAME}") endif() if(WIN32) target_compile_definitions(076cpputils PRIVATE VK_USE_PLATFORM_WIN32_KHR) elseif(APPLE) target_compile_definitions(076cpputils PRIVATE VK_USE_PLATFORM_METAL_EXT) elseif(UNIX) target_compile_definitions(076cpputils PRIVATE VK_USE_PLATFORM_XCB_KHR) endif() target_link_libraries(076cpputils PRIVATE glfw sqlite3 )