aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/nana/CMakeLists.txt
diff options
context:
space:
mode:
authorEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
committerEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
commit54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch)
treed915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/nana/CMakeLists.txt
move to own git serverHEADmaster
Diffstat (limited to 'vcpkg/ports/nana/CMakeLists.txt')
-rw-r--r--vcpkg/ports/nana/CMakeLists.txt86
1 files changed, 86 insertions, 0 deletions
diff --git a/vcpkg/ports/nana/CMakeLists.txt b/vcpkg/ports/nana/CMakeLists.txt
new file mode 100644
index 0000000..c66ce66
--- /dev/null
+++ b/vcpkg/ports/nana/CMakeLists.txt
@@ -0,0 +1,86 @@
+cmake_minimum_required(VERSION 3.10.2 FATAL_ERROR)
+project(nana VERSION 1.7.4 LANGUAGES CXX)
+
+option(NANA_ENABLE_PNG "Enable PNG support" OFF)
+option(NANA_ENABLE_JPEG "Enable JPEG support" OFF)
+option(NANA_INSTALL_HEADERS "Install headers" ON)
+
+if(APPLE)
+ add_definitions(-DAPPLE)
+elseif(UNIX)
+ add_definitions(-Dlinux)
+endif()
+
+file(GLOB_RECURSE headers include/*.hpp)
+source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR}/include PREFIX "include" FILES ${headers})
+
+file(GLOB sources source/*.hpp source/*.cpp)
+foreach(subdir detail filesystem gui paint system threads)
+ file(GLOB_RECURSE sources_subdir source/${subdir}/*.hpp source/${subdir}/*.cpp)
+ list(APPEND sources ${sources_subdir})
+endforeach()
+source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR}/source PREFIX "source" FILES ${sources})
+
+add_library(nana ${headers} ${sources})
+target_include_directories(nana PUBLIC
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
+ $<INSTALL_INTERFACE:include>)
+
+target_compile_features(nana PUBLIC cxx_std_17)
+
+if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
+ target_link_libraries(nana PUBLIC c++experimental)
+endif()
+
+if(CMAKE_CXX_COMPILER_ID MATCHES "GCC")
+ target_link_libraries(nana PUBLIC stdc++fs)
+endif()
+
+if(UNIX)
+ find_package(Threads REQUIRED)
+ target_link_libraries(nana PUBLIC Threads::Threads)
+
+ find_package(Freetype REQUIRED)
+ target_link_libraries(nana PUBLIC Freetype::Freetype)
+
+ find_package(X11 REQUIRED)
+ target_include_directories(nana PUBLIC ${X11_INCLUDE_DIR})
+ target_link_libraries(nana PUBLIC ${X11_LIBRARIES} ${X11_Xft_LIB})
+
+ find_package(Fontconfig REQUIRED)
+ target_link_libraries(nana PUBLIC Fontconfig::Fontconfig)
+endif()
+
+if(NANA_ENABLE_PNG)
+ find_package(PNG REQUIRED)
+ target_link_libraries(nana PUBLIC PNG::PNG)
+ target_compile_definitions(nana PUBLIC NANA_ENABLE_PNG=1 USE_LIBPNG_FROM_OS=1)
+endif()
+
+if(NANA_ENABLE_JPEG)
+ find_package(JPEG REQUIRED)
+ target_include_directories(nana PUBLIC ${JPEG_INCLUDE_DIR})
+ target_link_libraries(nana PUBLIC $<BUILD_INTERFACE:${JPEG_LIBRARIES}>)
+ target_compile_definitions(nana PUBLIC NANA_ENABLE_JPEG=1 USE_LIBJPEG_FROM_OS=1)
+endif()
+
+install(TARGETS nana EXPORT nana
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib)
+
+if(NANA_INSTALL_HEADERS)
+ install(DIRECTORY include/nana DESTINATION include)
+endif()
+
+include(CMakePackageConfigHelpers)
+
+configure_package_config_file(config.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/unofficial-nana-config.cmake
+ INSTALL_DESTINATION share/unofficial-nana)
+
+write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/unofficial-nana-config-version.cmake
+ VERSION ${PROJECT_VERSION} COMPATIBILITY SameMajorVersion)
+
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/unofficial-nana-config.cmake DESTINATION share/unofficial-nana)
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/unofficial-nana-config-version.cmake DESTINATION share/unofficial-nana)
+install(EXPORT nana FILE unofficial-nana-targets.cmake NAMESPACE unofficial::nana:: DESTINATION share/unofficial-nana)