11cmake_minimum_required (VERSION 3.28 )
2- project (ncrypto)
2+ project (ncrypto VERSION 1.0.1 )
33
44include (CTest )
55include (GNUInstallDirs )
6- include (FetchContent )
7- include (cmake/ncrypto-flags.cmake )
86
97if (NOT CMAKE_BUILD_TYPE )
108 message (STATUS "No build type selected, default to Release" )
119 set (CMAKE_BUILD_TYPE Release CACHE STRING "Choose the type of build." FORCE )
1210endif ()
1311
14- include (cmake/CPM.cmake )
12+ if (NCRYPTO_SHARED_LIBS)
13+ find_package (OpenSSL REQUIRED )
14+ else ()
15+ include (FetchContent )
16+ include (cmake/CPM.cmake )
1517
16- CPMAddPackage (
18+ CPMAddPackage (
1719 NAME boringssl
1820 VERSION 0.20250818.0
1921 GITHUB_REPOSITORY google/boringssl
2022 GIT_TAG 0.20250818.0
2123 OPTIONS "BUILD_SHARED_LIBS OFF" "BUILD_TESTING OFF"
22- )
24+ )
25+ endif ()
26+
2327add_subdirectory (src )
2428add_library (ncrypto::ncrypto ALIAS ncrypto )
2529
26- include_directories (${boringssl_SOURCE_DIR} /include )
27-
2830if (NCRYPTO_TESTING)
29- CPMAddPackage (
31+ if (NCRYPTO_SHARED_LIBS)
32+ find_package (GTest REQUIRED )
33+ else ()
34+ CPMAddPackage (
3035 NAME GTest
3136 GITHUB_REPOSITORY google/googletest
3237 VERSION 1.15.2
3338 OPTIONS "BUILD_GMOCK OFF" "INSTALL_GTEST OFF"
34- )
35- # For Windows: Prevent overriding the parent project's compiler/linker settings
36- set (gtest_force_shared_crt ON CACHE BOOL "" FORCE )
39+ )
40+ # For Windows: Prevent overriding the parent project's compiler/linker settings
41+ set (gtest_force_shared_crt ON CACHE BOOL "" FORCE )
42+ endif ()
3743 enable_testing ()
3844 add_subdirectory (tests )
3945endif ()
@@ -53,3 +59,15 @@ install(
5359 ARCHIVE COMPONENT ncrypto_development
5460 INCLUDES DESTINATION "${CMAKE_INSTALL_INCLUDEDIR} "
5561)
62+
63+ # Generate pkg-config file
64+ configure_file (
65+ ${CMAKE_CURRENT_SOURCE_DIR} /ncrypto.pc.in
66+ ${CMAKE_CURRENT_BINARY_DIR} /ncrypto.pc
67+ @ONLY
68+ )
69+
70+ install (
71+ FILES ${CMAKE_CURRENT_BINARY_DIR} /ncrypto.pc
72+ DESTINATION ${CMAKE_INSTALL_LIBDIR} /pkgconfig
73+ )
0 commit comments