|
1 | 1 | cmake_minimum_required(VERSION 3.2.2)
|
2 |
| -project(libs3dat) |
| 2 | +project(libs3dat VERSION 1.0.0) |
3 | 3 |
|
4 | 4 | option(PRIVATE_FILENAME "stop leaking complete path to file (should be enabled on distribution)" ON)
|
5 | 5 |
|
6 |
| -add_subdirectory(libs3util) |
7 |
| - |
8 |
| -include(CPack) |
9 | 6 | include(CTest)
|
10 | 7 | include(TestBigEndian)
|
| 8 | +include(CMakePackageConfigHelpers) |
11 | 9 |
|
12 | 10 | set(CMAKE_C_FLAGS "-Wall")
|
13 | 11 | set(CMAKE_C_STANDARD 11)
|
14 | 12 | set(CMAKE_C_STANDARD_REQUIRED ON)
|
15 | 13 | set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib")
|
16 | 14 | set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin")
|
17 | 15 | set(CPACK_PACKAGE_NAME "libs3dat")
|
| 16 | +set(CPACK_PACKAGE_VERSION ${libs3dat_VERSION}) |
| 17 | +set(CPACK_PACKAGE_VERSION_MAJOR ${libs3dat_VERSION_MAJOR}) |
| 18 | +set(CPACK_PACKAGE_VERSION_MINOR ${libs3dat_VERSION_MINOR}) |
| 19 | +set(CPACK_PACKAGE_VERSION_PATCH ${libs3dat_VERSION_PATCH}) |
| 20 | +set(CPACK_RESOURCE_FILE_LICENSE ${CMAKE_CURRENT_SOURCE_DIR}/LICENSE) |
| 21 | +set(CPACK_PACKAGING_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX}) |
| 22 | +set(CPACK_DEBIAN_PACKAGE_DEPENDS "libs3util (=1.0.0)") |
| 23 | +include(CPack) |
18 | 24 |
|
19 | 25 | set(STRING_BUFFER 1024)
|
20 | 26 |
|
21 | 27 | TEST_BIG_ENDIAN(IS_BE)
|
22 | 28 |
|
| 29 | +find_package(s3util REQUIRED) |
| 30 | + |
23 | 31 |
|
24 | 32 | configure_file(config.h.in ${PROJECT_BINARY_DIR}/config.s3dat.h)
|
| 33 | +configure_file(libs3dat.pc.in ${PROJECT_BINARY_DIR}/libs3dat.pc @ONLY) |
25 | 34 |
|
26 |
| -include_directories(src ${PROJECT_BINARY_DIR} libs3util/src) |
| 35 | +include_directories(src ${PROJECT_BINARY_DIR} ${s3util_INCLUDE_DIRS}) |
27 | 36 |
|
28 | 37 |
|
29 | 38 | #s3dat
|
30 | 39 | file(GLOB_RECURSE s3dat_SOURCES "src/*.[ch]")
|
31 | 40 |
|
32 | 41 | add_library(s3dat SHARED ${s3dat_SOURCES})
|
33 | 42 | target_link_libraries(s3dat s3util)
|
| 43 | +target_include_directories(s3dat PUBLIC $<INSTALL_INTERFACE:include>) |
34 | 44 |
|
35 | 45 | add_executable(cli cli.c)
|
36 | 46 | target_link_libraries(cli s3dat)
|
@@ -62,8 +72,19 @@ if(glfw3_FOUND AND OpenGL_FOUND)
|
62 | 72 | target_include_directories(walk PUBLIC ${OPENGL_INCLUDE_DIRS} ${glfw3_INCLUDE_DIRS})
|
63 | 73 | endif()
|
64 | 74 |
|
65 |
| -install(TARGETS s3dat DESTINATION lib) |
| 75 | +write_basic_package_version_file(${PROJECT_BINARY_DIR}/s3datConfigVersion.cmake COMPATIBILITY ExactVersion) |
| 76 | +configure_package_config_file(s3datConfig.cmake.in s3datConfig.cmake INSTALL_DESTINATION lib/cmake/s3dat PATH_VARS CMAKE_INSTALL_PREFIX PROJECT_BINARY_DIR) |
| 77 | + |
| 78 | +install(TARGETS s3dat EXPORT s3datTarget DESTINATION lib) |
| 79 | +install(EXPORT s3datTarget DESTINATION lib/cmake/s3dat) |
| 80 | + |
| 81 | +#for find_package on build dirs |
| 82 | +export(TARGETS s3dat FILE s3datTarget.cmake) |
| 83 | + |
66 | 84 | install(FILES src/s3dat_ext.h src/s3dat.h DESTINATION include/s3dat)
|
| 85 | +install(FILES ${PROJECT_BINARY_DIR}/libs3dat.pc DESTINATION lib/pkgconfig) |
| 86 | +install(FILES ${PROJECT_BINARY_DIR}/s3datConfigVersion.cmake ${PROJECT_BINARY_DIR}/s3datConfig.cmake DESTINATION lib/cmake/s3dat) |
| 87 | +install(FILES LICENSE DESTINATION share/doc/libs3dat) |
67 | 88 |
|
68 | 89 | add_executable(testme test.c)
|
69 | 90 | target_link_libraries(testme s3dat)
|
|
0 commit comments