]> git.proxmox.com Git - ceph.git/blob - ceph/src/jaegertracing/opentelemetry-cpp/tools/vcpkg/ports/nana/CMakeLists.txt
update ceph source to reef 18.1.2
[ceph.git] / ceph / src / jaegertracing / opentelemetry-cpp / tools / vcpkg / ports / nana / CMakeLists.txt
1 cmake_minimum_required(VERSION 3.10.2 FATAL_ERROR)
2 project(nana VERSION 1.7.4 LANGUAGES CXX)
3
4 option(NANA_ENABLE_PNG "Enable PNG support" OFF)
5 option(NANA_ENABLE_JPEG "Enable JPEG support" OFF)
6 option(NANA_INSTALL_HEADERS "Install headers" ON)
7
8 if(APPLE)
9 add_definitions(-DAPPLE)
10 elseif(UNIX)
11 add_definitions(-Dlinux)
12 endif()
13
14 file(GLOB_RECURSE headers include/*.hpp)
15 source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR}/include PREFIX "include" FILES ${headers})
16
17 file(GLOB sources source/*.hpp source/*.cpp)
18 foreach(subdir detail filesystem gui paint system threads)
19 file(GLOB_RECURSE sources_subdir source/${subdir}/*.hpp source/${subdir}/*.cpp)
20 list(APPEND sources ${sources_subdir})
21 endforeach()
22 source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR}/source PREFIX "source" FILES ${sources})
23
24 add_library(nana ${headers} ${sources})
25 target_include_directories(nana PUBLIC
26 $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
27 $<INSTALL_INTERFACE:include>)
28
29 target_compile_features(nana PUBLIC cxx_std_17)
30
31 if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
32 target_link_libraries(nana PUBLIC c++experimental)
33 endif()
34
35 if(CMAKE_CXX_COMPILER_ID MATCHES "GCC")
36 target_link_libraries(nana PUBLIC stdc++fs)
37 endif()
38
39 if(UNIX)
40 find_package(Threads REQUIRED)
41 target_link_libraries(nana PUBLIC Threads::Threads)
42
43 find_package(Freetype REQUIRED)
44 target_link_libraries(nana PUBLIC Freetype::Freetype)
45
46 find_package(X11 REQUIRED)
47 target_include_directories(nana PUBLIC ${X11_INCLUDE_DIR})
48 target_link_libraries(nana PUBLIC ${X11_LIBRARIES} ${X11_Xft_LIB})
49
50 find_package(Fontconfig REQUIRED)
51 target_link_libraries(nana PUBLIC Fontconfig::Fontconfig)
52 endif()
53
54 if(NANA_ENABLE_PNG)
55 find_package(PNG REQUIRED)
56 target_link_libraries(nana PUBLIC PNG::PNG)
57 target_compile_definitions(nana PUBLIC NANA_ENABLE_PNG=1 USE_LIBPNG_FROM_OS=1)
58 endif()
59
60 if(NANA_ENABLE_JPEG)
61 find_package(JPEG REQUIRED)
62 target_include_directories(nana PUBLIC ${JPEG_INCLUDE_DIR})
63 target_link_libraries(nana PUBLIC $<BUILD_INTERFACE:${JPEG_LIBRARIES}>)
64 target_compile_definitions(nana PUBLIC NANA_ENABLE_JPEG=1 USE_LIBJPEG_FROM_OS=1)
65 endif()
66
67 install(TARGETS nana EXPORT nana
68 RUNTIME DESTINATION bin
69 LIBRARY DESTINATION lib
70 ARCHIVE DESTINATION lib)
71
72 if(NANA_INSTALL_HEADERS)
73 install(DIRECTORY include/nana DESTINATION include)
74 endif()
75
76 include(CMakePackageConfigHelpers)
77
78 configure_package_config_file(config.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/unofficial-nana-config.cmake
79 INSTALL_DESTINATION share/unofficial-nana)
80
81 write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/unofficial-nana-config-version.cmake
82 VERSION ${PROJECT_VERSION} COMPATIBILITY SameMajorVersion)
83
84 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/unofficial-nana-config.cmake DESTINATION share/unofficial-nana)
85 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/unofficial-nana-config-version.cmake DESTINATION share/unofficial-nana)
86 install(EXPORT nana FILE unofficial-nana-targets.cmake NAMESPACE unofficial::nana:: DESTINATION share/unofficial-nana)