master
ブランチ master
cpputils / CMakeLists.txt
1.9 KB、57行 生 Blame 履歴
1cmake_minimum_required(VERSION 3.14...3.28)
2project(076cpputils LANGUAGES CXX)
3
4set(CMAKE_CXX_STANDARD 20)
5set(CMAKE_CXX_STANDARD_REQUIRED ON)
6set(CMAKE_CXX_EXTENSIONS OFF)
7
8set(BUILD_SHARED_LIBS OFF CACHE BOOL "静的リンク" FORCE)
9
10set(DB_NAME "test.db" CACHE STRING "データベースのパス" FORCE)
11
12option(GLFW_BUILD_EXAMPLES OFF)
13option(GLFW_BUILD_TESTS OFF)
14option(GLFW_BUILD_DOCS OFF)
15option(GLFW_INSTALL OFF)
16add_subdirectory(deps/glfw)
17add_subdirectory(deps/sqlite)
18
19add_library(076cpputils)
20
21file(GLOB_RECURSE CPPUTILS_SRC CONFIGURE_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/src/*.cc")
22file(GLOB_RECURSE CPPUTILS_INC CONFIGURE_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/include/*.hh")
23
24target_sources(076cpputils PRIVATE "${CPPUTILS_SRC}")
25target_include_directories(076cpputils PUBLIC include)
26
27if(CMAKE_BUILD_TYPE STREQUAL "Debug" OR CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo")
28 set(DB_NAME "test.db" CACHE STRING "データベースのパス" FORCE)
29 set(PRODUCTION_BUILD OFF CACHE BOOL "リリース版?" FORCE)
30 target_compile_definitions(076cpputils PRIVATE
31 DB_NAME="test.db"
32 DB_RELATIVE_TO_EXE
33 )
34else()
35 set(PRODUCTION_BUILD ON CACHE BOOL "リリース版?" FORCE)
36 if(WIN32)
37 set(DB_NAME "$ENV{LOCALAPPDATA}/076Studio/Test/data/test.db" CACHE STRING "データベースのパス" FORCE)
38 elseif(UNIX)
39 set(DB_NAME "$ENV{HOME}/.local/share/Test/test.db" CACHE STRING "データベースのパス" FORCE)
40 else()
41 set(DB_NAME "test.db" CACHE STRING "データベースのパス" FORCE)
42 endif()
43 target_compile_definitions(076cpputils PRIVATE PRODUCTION_BUILD DB_NAME="${DB_NAME}")
44endif()
45
46if(WIN32)
47 target_compile_definitions(076cpputils PRIVATE VK_USE_PLATFORM_WIN32_KHR)
48elseif(APPLE)
49 target_compile_definitions(076cpputils PRIVATE VK_USE_PLATFORM_METAL_EXT)
50elseif(UNIX)
51 target_compile_definitions(076cpputils PRIVATE VK_USE_PLATFORM_XCB_KHR)
52endif()
53
54target_link_libraries(076cpputils PRIVATE
55 glfw
56 sqlite3
57)