-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMakeLists.txt
80 lines (63 loc) · 2.02 KB
/
CMakeLists.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
cmake_minimum_required(VERSION 3.23)
set(BUILD_TESTS OFF CACHE BOOL "Build tests")
set(BUILD_BENCHMARK OFF CACHE BOOL "Build benchmark")
set(BUILD_TOOLS OFF CACHE BOOL "Build tools")
set(BUILD_EXAMPLES OFF CACHE BOOL "Build examples")
set(BUILD_ONLY_TESTS OFF CACHE BOOL "Build only tests")
set(WITH_VCPKG OFF CACHE BOOL "Use vcpkg")
set(VCPKG_PATH "" CACHE STRING "Vcpkg path")
set(VCPKG_TARGET_TRIPLET "" CACHE STRING "Vcpkg triplet")
#--------------------------------------------------
set(BUILD_TESTS ON)
set(BUILD_ONLY_CORE ON)
#set(WITH_VCPKG ON)
#set(VCPKG_PATH "/home/ysx/env/vcpkg")
#set(VCPKG_TARGET_TRIPLET "x64-linux")
set(ThridPatryDir ${CMAKE_SOURCE_DIR}/third_party)
set(TianLiCoreDir ${CMAKE_SOURCE_DIR}/Installer/lib_core)
include(cmake/utils.cmake)
include(cmake/version.cmake)
include(cmake/auto_subdirectory.cmake)
tianli_parse_version()
tianli_installer_parse_version(config/version)
message (STATUS "TianLi.Installer version: ${tianli_installer_version_cmake}")
# 统一生成到build目录中的bin和lib中
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
project(TianLi.Installer
LANGUAGES CXX
VERSION ${tianli_installer_version_cmake}
DESCRIPTION "WeiXiTianLi Installer"
HOMEPAGE_URL "http://www.weixitianli.com/"
)
if (MSVC)
message(STATUS "MSVC")
else()
message(STATUS "GCC")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17")
endif()
# utf-8
if (MSVC)
add_compile_options(/utf-8)
else()
add_compile_options(-finput-charset=UTF-8)
add_compile_options(-fexec-charset=UTF-8)
endif()
if(NOT BUILD_ONLY_TESTS)
message(STATUS "Build TianLi.Installer")
add_subdirectory(Installer)
endif()
if (BUILD_TESTS)
message(STATUS "Build tests")
add_subdirectory(tests)
endif()
if (BUILD_BENCHMARK)
add_subdirectory(benchmark)
endif()
if (BUILD_TOOLS)
add_subdirectory(tools)
endif()
if (BUILD_EXAMPLES)
add_subdirectory(examples)
endif()