Skip to content

Commit 183878a

Browse files
committed
Handle pugixml header only mode correctly
1 parent 9489497 commit 183878a

File tree

3 files changed

+22
-6
lines changed

3 files changed

+22
-6
lines changed

src/CMakeLists.txt

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,20 +19,23 @@ FetchContent_Declare(
1919
binaryio
2020
GIT_REPOSITORY https://github.com/Bo98/libbinaryio
2121
GIT_TAG 2a95966233e818cf5c0990d6bf338da4afc81c7e
22+
SYSTEM
2223
EXCLUDE_FROM_ALL
2324
FIND_PACKAGE_ARGS
2425
)
2526
FetchContent_Declare(
2627
ZLIB
2728
GIT_REPOSITORY https://github.com/madler/zlib
2829
GIT_TAG 5a82f71ed1dfc0bec044d9702463dbdf84ea3b71
30+
SYSTEM
2931
EXCLUDE_FROM_ALL
3032
FIND_PACKAGE_ARGS
3133
)
3234
FetchContent_Declare(
3335
pugixml
3436
GIT_REPOSITORY https://github.com/zeux/pugixml
3537
GIT_TAG ee86beb30e4973f5feffe3ce63bfa4fbadf72f38 # v1.15
38+
SOURCE_SUBDIR dontbuild
3639
EXCLUDE_FROM_ALL
3740
FIND_PACKAGE_ARGS 1.11
3841
)
@@ -45,10 +48,10 @@ if(NOT ZLIB_FOUND AND NOT BUILD_SHARED_LIBS)
4548
endif()
4649

4750
target_link_libraries(libbndl PRIVATE binaryio ZLIB::ZLIB)
48-
if(pugixml_FOUND)
51+
if(TARGET pugixml::pugixml)
4952
target_link_libraries(libbndl PRIVATE pugixml::pugixml)
5053
else()
51-
target_include_directories(libbndl PRIVATE ${pugixml_SOURCE_DIR}/src)
54+
target_include_directories(libbndl SYSTEM PRIVATE ${pugixml_SOURCE_DIR}/src)
5255
target_compile_definitions(libbndl PRIVATE PUGIXML_HEADER_ONLY PUGIXML_NO_XPATH)
5356
endif()
5457

tools/bndl_util/CMakeLists.txt

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,15 @@ FetchContent_Declare(
88
FIND_PACKAGE_ARGS
99
)
1010
FetchContent_MakeAvailable(cxxopts)
11+
FetchContent_GetProperties(pugixml)
1112

12-
target_link_libraries(bndl_util PRIVATE libbndl cxxopts::cxxopts pugixml::pugixml)
13-
target_compile_definitions(bndl_util PRIVATE PUGIXML_HEADER_ONLY PUGIXML_NO_XPATH)
13+
target_link_libraries(bndl_util PRIVATE libbndl cxxopts::cxxopts)
14+
if(TARGET pugixml::pugixml)
15+
target_link_libraries(bndl_util PRIVATE pugixml::pugixml)
16+
else()
17+
target_include_directories(bndl_util SYSTEM PRIVATE ${pugixml_SOURCE_DIR}/src)
18+
target_compile_definitions(bndl_util PRIVATE PUGIXML_HEADER_ONLY PUGIXML_NO_XPATH)
19+
endif()
1420

1521
set_property(TARGET bndl_util PROPERTY CXX_STANDARD 20)
1622

tools/bndl_validationtest/CMakeLists.txt

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,14 @@
11
add_executable(bndl_validationtest main.cpp)
22

3-
target_link_libraries(bndl_validationtest PRIVATE libbndl cxxopts::cxxopts pugixml::pugixml)
4-
target_compile_definitions(bndl_validationtest PRIVATE PUGIXML_HEADER_ONLY PUGIXML_NO_XPATH)
3+
FetchContent_GetProperties(pugixml)
4+
5+
target_link_libraries(bndl_validationtest PRIVATE libbndl cxxopts::cxxopts)
6+
if(TARGET pugixml::pugixml)
7+
target_link_libraries(bndl_validationtest PRIVATE pugixml::pugixml)
8+
else()
9+
target_include_directories(bndl_validationtest SYSTEM PRIVATE ${pugixml_SOURCE_DIR}/src)
10+
target_compile_definitions(bndl_validationtest PRIVATE PUGIXML_HEADER_ONLY PUGIXML_NO_XPATH)
11+
endif()
512

613
set_property(TARGET bndl_validationtest PROPERTY CXX_STANDARD 20)
714

0 commit comments

Comments
 (0)