|
1 | | -cmake_minimum_required(VERSION 3.10) |
2 | | - |
3 | | -include(GNUInstallDirs) |
| 1 | +cmake_minimum_required(VERSION 3.20) |
4 | 2 |
|
5 | 3 | set(name tml) |
6 | | - |
7 | 4 | project(${name}) |
8 | 5 |
|
9 | | -# ============================ |
10 | | -# = find dependency packages = |
11 | | - |
12 | | -find_package(utki CONFIG REQUIRED) |
13 | | -find_package(papki CONFIG REQUIRED) |
14 | | -find_package(ZLIB REQUIRED) |
15 | | - |
16 | | -# ============================ |
17 | | - |
18 | | -file(GLOB_RECURSE srcs "../../src/${name}/*.cpp") |
19 | | - |
20 | | -add_library( |
21 | | - ${name} |
22 | | - STATIC |
23 | | - ${srcs} |
24 | | -) |
25 | | - |
26 | | -target_compile_features(${name} PUBLIC cxx_std_17) |
27 | | -set_target_properties(${name} PROPERTIES CXX_STANDARD_REQUIRED ON) |
28 | | -set_target_properties(${name} PROPERTIES CXX_EXTENSIONS OFF) |
29 | | - |
30 | | -target_include_directories( |
31 | | - ${name} |
32 | | - INTERFACE |
33 | | - $<BUILD_INTERFACE:> |
34 | | - $<INSTALL_INTERFACE:include> |
35 | | -) |
| 6 | +# !!! find_package must go after project() declaration !!! |
| 7 | +# Otherwise VCPKG does not set the CMAKE_PREFIX_PATH to find packages. |
| 8 | +find_package(myci CONFIG REQUIRED) |
36 | 9 |
|
37 | | -target_link_libraries( |
38 | | - ${name} |
39 | | - PUBLIC |
40 | | - utki::utki |
41 | | - papki::papki |
42 | | -) |
43 | | - |
44 | | -# install library header files preserving directory hierarchy |
45 | | -install( |
| 10 | +set(srcs) |
| 11 | +myci_add_source_files(srcs |
46 | 12 | DIRECTORY |
47 | | - "${CMAKE_CURRENT_SOURCE_DIR}/../../src/${name}" |
48 | | - DESTINATION |
49 | | - "${CMAKE_INSTALL_INCLUDEDIR}" |
50 | | - FILES_MATCHING PATTERN |
51 | | - "*.hpp" |
52 | | -) |
53 | | - |
54 | | -install( |
55 | | - TARGETS |
56 | | - ${name} |
57 | | - EXPORT # generate cmake configs |
58 | | - ${name}-config |
| 13 | + ../../src/${name} |
| 14 | + RECURSIVE |
59 | 15 | ) |
60 | 16 |
|
61 | | -# install cmake configs |
62 | | -install( |
63 | | - EXPORT |
64 | | - ${name}-config |
65 | | - FILE |
66 | | - ${name}-config.cmake |
67 | | - DESTINATION |
68 | | - ${CMAKE_INSTALL_DATAROOTDIR}/${name} |
69 | | - NAMESPACE |
70 | | - ${name}:: |
| 17 | +myci_declare_library(${name} |
| 18 | + SOURCES |
| 19 | + ${srcs} |
| 20 | + PUBLIC_INCLUDE_DIRECTORIES |
| 21 | + ../../src |
| 22 | + INSTALL_INCLUDE_DIRECTORIES |
| 23 | + ../../src/${name} |
| 24 | + DEPENDENCIES |
| 25 | + utki |
| 26 | + papki |
| 27 | + EXTERNAL_DEPENDENCIES |
| 28 | + ZLIB |
71 | 29 | ) |
0 commit comments