@@ -30,58 +30,89 @@ option(HYPERPAGE_COVER "Enable code coverage" OFF)
3030option (HYPERPAGE_EXAMPLE "Build example" OFF )
3131option (HYPERPAGE_DOCS "Build documentation" OFF )
3232
33- include (FetchContent )
34- FetchContent_Declare (
35- MegaMimes
36- GIT_REPOSITORY https://github.com/kobbyowen/MegaMimes.git
37- GIT_TAG b839068db99cbfcff1af8df1229bd7e41701fe96
38- )
39- FetchContent_MakeAvailable (MegaMimes)
33+ # Check if CMAKE_TOOLCHAIN_FILE is set
34+ if (DEFINED CMAKE_TOOLCHAIN_FILE )
35+ message (STATUS "CMAKE_TOOLCHAIN_FILE is set to: ${CMAKE_TOOLCHAIN_FILE } " )
36+
37+ # Check if the path points to the vcpkg toolchain file
38+ if ("${CMAKE_TOOLCHAIN_FILE } " MATCHES ".*[/\\ ]scripts[/\\ ]buildsystems[/\\ ]vcpkg.cmake$" )
39+ message (STATUS "vcpkg toolchain file detected via path matching." )
40+ set (VCPKG_TOOLCHAIN_ACTIVE TRUE )
41+ endif ()
42+ endif ()
4043
41- FetchContent_Declare (
42- sqlite3
43- GIT_REPOSITORY https://github.com/sjinks/sqlite3-cmake.git
44- GIT_TAG master
45- )
46- FetchContent_MakeAvailable (sqlite3)
44+ if (VCPKG_TOOLCHAIN_ACTIVE)
45+ find_package (megamimes CONFIG REQUIRED )
46+ find_package (unofficial-sqlite3 CONFIG REQUIRED )
47+ find_package (argparse CONFIG REQUIRED )
48+ find_package (mio CONFIG REQUIRED )
49+
50+ set (HYPERPAGE_EXTRA_SOURCES "" )
51+ set (HYPERPAGE_PRIVATE_INCLUDES "" )
52+ set (HYPERPAGE_SQLITE_TARGET unofficial::sqlite3::sqlite3)
53+ else ()
54+ include (FetchContent )
55+ FetchContent_Declare (
56+ MegaMimes
57+ GIT_REPOSITORY https://github.com/kobbyowen/MegaMimes.git
58+ GIT_TAG b839068db99cbfcff1af8df1229bd7e41701fe96
59+ )
60+ FetchContent_MakeAvailable (MegaMimes)
4761
48- FetchContent_Declare (
49- argparse
50- GIT_REPOSITORY https://github.com/p-ranav/argparse.git
51- GIT_TAG master
52- )
53- FetchContent_MakeAvailable (argparse)
54- FetchContent_Declare (
55- mio
56- GIT_REPOSITORY https://github.com/maxtek6/mio.git
57- GIT_TAG master
58- )
59- FetchContent_MakeAvailable (mio)
62+ FetchContent_Declare (
63+ sqlite3
64+ GIT_REPOSITORY https://github.com/sjinks/sqlite3-cmake.git
65+ GIT_TAG master
66+ )
67+ FetchContent_MakeAvailable (sqlite3)
68+
69+ FetchContent_Declare (
70+ argparse
71+ GIT_REPOSITORY https://github.com/p-ranav/argparse.git
72+ GIT_TAG master
73+ )
74+ FetchContent_MakeAvailable (argparse)
75+
76+ FetchContent_Declare (
77+ mio
78+ GIT_REPOSITORY https://github.com/maxtek6/mio.git
79+ GIT_TAG master
80+ )
81+ FetchContent_MakeAvailable (mio)
82+
83+ set (HYPERPAGE_EXTRA_SOURCES ${megamimes_SOURCE_DIR } /src/MegaMimes.c)
84+ set (HYPERPAGE_PRIVATE_INCLUDES ${megamimes_SOURCE_DIR } /src)
85+ set (HYPERPAGE_SQLITE_TARGET SQLite::SQLite3)
86+ endif ()
6087
6188add_library (
62- hyperpage
89+ hyperpage
6390 STATIC
6491 ${CMAKE_CURRENT_SOURCE_DIR } /hyperpage.cpp
65- ${megamimes_SOURCE_DIR } /src/MegaMimes.c
92+ ${HYPERPAGE_EXTRA_SOURCES}
6693)
6794
6895target_include_directories (
69- hyperpage
70- PUBLIC
96+ hyperpage
97+ PUBLIC
7198 $<BUILD_INTERFACE :${CMAKE_CURRENT_SOURCE_DIR } >
7299 $<INSTALL_INTERFACE :include >
73100 PRIVATE
74- ${megamimes_SOURCE_DIR } /src )
101+ ${HYPERPAGE_PRIVATE_INCLUDES}
102+ )
75103
76- target_link_libraries (hyperpage PUBLIC SQLite::SQLite3 )
104+ target_link_libraries (hyperpage PUBLIC ${HYPERPAGE_SQLITE_TARGET} )
105+ if (VCPKG_TOOLCHAIN_ACTIVE)
106+ target_link_libraries (hyperpage PUBLIC megamimes::megamimes )
107+ endif ()
77108
78109set_target_properties (hyperpage PROPERTIES
79110 PUBLIC_HEADER "${CMAKE_CURRENT_SOURCE_DIR } /hyperpage.hpp"
80111)
81112
82113add_executable (hyperpack ${CMAKE_CURRENT_SOURCE_DIR } /hyperpack.cpp )
83114target_include_directories (hyperpack PRIVATE ${CMAKE_CURRENT_SOURCE_DIR } )
84- target_link_libraries (hyperpack PRIVATE argparse hyperpage mio::mio )
115+ target_link_libraries (hyperpack PRIVATE argparse::argparse hyperpage mio::mio )
85116
86117
87118# CMake function for creating hyperpack archives
0 commit comments