Skip to content

Commit 1a98c42

Browse files
authored
Merge pull request ornladios#4697 from Crivella/faeture-fix_external_evpath
Potential fix for CMake logic in using an external EVPath build
2 parents c7b30a1 + 03785d9 commit 1a98c42

File tree

6 files changed

+34
-16
lines changed

6 files changed

+34
-16
lines changed

cmake/ADIOSFunctions.cmake

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,14 @@ function(adios2_add_thirdparty_target PackageName TargetName)
163163
target_link_libraries(adios2::thirdparty::${PackageName}
164164
INTERFACE ${TargetName}
165165
)
166+
167+
if (TargetName)
168+
get_target_property(interface_include_directories ${TargetName} INTERFACE_INCLUDE_DIRECTORIES)
169+
if (interface_include_directories)
170+
set_target_properties(adios2::thirdparty::${PackageName} PROPERTIES
171+
INTERFACE_INCLUDE_DIRECTORIES "${interface_include_directories}")
172+
endif()
173+
endif()
166174
endfunction()
167175

168176
# Setup the test dependencies and fixtures for a given pipeline:

cmake/adios2-config-common.cmake.in

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -181,11 +181,16 @@ if(NOT @BUILD_SHARED_LIBS@)
181181
target_link_libraries(adios2::thirdparty::pugixml INTERFACE pugixml)
182182
endif()
183183

184-
adios2_add_thirdparty_target(yaml-cpp)
185184
set(ADIOS2_USE_EXTERNAL_YAMLCPP @ADIOS2_USE_EXTERNAL_YAMLCPP@)
185+
set(yaml_cpp_target "yaml-cpp")
186186
if(ADIOS2_USE_EXTERNAL_YAMLCPP)
187187
find_dependency(yaml-cpp)
188-
target_link_libraries(adios2::thirdparty::yaml-cpp INTERFACE yaml-cpp)
188+
if (yaml-cpp_VERSION VERSION_GREATER_EQUAL 0.8)
189+
set(yaml_cpp_target "yaml-cpp::yaml-cpp")
190+
endif()
191+
adios2_add_thirdparty_target(yaml-cpp ${yaml_cpp_target})
192+
else()
193+
adios2_add_thirdparty_target(yaml-cpp)
189194
endif()
190195

191196
# No concrete implementation, just put this here to satisfy quasi-dependency

cmake/adios2-config-install.cmake.in

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,23 +5,23 @@ set(_ADIOS2_CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH})
55
list(INSERT CMAKE_MODULE_PATH 0 "${CMAKE_CURRENT_LIST_DIR}")
66

77
if(NOT @BUILD_SHARED_LIBS@)
8-
if(NOT @ADIOS2_USE_EXTERNAL_EVPATH@)
8+
if(NOT "@ADIOS2_USE_EXTERNAL_EVPATH@")
99
set(EVPath_DIR ${CMAKE_CURRENT_LIST_DIR}/thirdparty)
1010
endif()
1111

12-
if(NOT @ADIOS2_USE_EXTERNAL_ATL@)
12+
if(NOT "@ADIOS2_USE_EXTERNAL_ATL@")
1313
set(atl_DIR ${CMAKE_CURRENT_LIST_DIR}/thirdparty)
1414
endif()
1515

16-
if(NOT @ADIOS2_USE_EXTERNAL_DILL@)
16+
if(NOT "@ADIOS2_USE_EXTERNAL_DILL@")
1717
set(dill_DIR ${CMAKE_CURRENT_LIST_DIR}/thirdparty)
1818
endif()
1919

20-
if(NOT @ADIOS2_USE_EXTERNAL_FFS@)
20+
if(NOT "@ADIOS2_USE_EXTERNAL_FFS@")
2121
set(ffs_DIR ${CMAKE_CURRENT_LIST_DIR}/thirdparty)
2222
endif()
2323

24-
if(NOT @ADIOS2_USE_EXTERNAL_ENET@)
24+
if(NOT "@ADIOS2_USE_EXTERNAL_ENET@")
2525
set(enet_DIR ${CMAKE_CURRENT_LIST_DIR}/thirdparty)
2626
endif()
2727
endif()

source/adios2/toolkit/remote/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ if (NOT ADIOS2_USE_PIP)
77
add_executable(adios2_remote_server ./remote_server.cpp)
88

99
target_link_libraries(adios2_remote_server
10-
PUBLIC EVPath::EVPath adios2_core adios2sys
10+
PUBLIC adios2::thirdparty::EVPath adios2_core adios2sys
1111
PRIVATE adios2::thirdparty::pugixml $<$<PLATFORM_ID:Windows>:shlwapi>)
1212

1313
target_include_directories(adios2_remote_server PRIVATE ${PROJECT_BINARY_DIR})

testing/adios2/unit/CMakeLists.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@ gtest_add_tests_helper(CoreDims MPI_NONE "" Unit. "")
88
if(ADIOS2_HAVE_SST)
99
gtest_add_tests_helper(Remote MPI_NONE "" Unit. "" WORKING_DIRECTORY ${REMOTE_DIR})
1010
set_tests_properties(Unit.Remote.OpenRead.Serial PROPERTIES FIXTURES_REQUIRED Server)
11-
get_target_property(EVPATH_INCLUDES EVPath::EVPath INCLUDE_DIRECTORIES)
12-
get_target_property(FFS_INCLUDES ffs::ffs INCLUDE_DIRECTORIES)
13-
get_target_property(ATL_INCLUDES atl::atl INCLUDE_DIRECTORIES)
11+
get_target_property(EVPATH_INCLUDES adios2::thirdparty::EVPath INTERFACE_INCLUDE_DIRECTORIES)
12+
get_target_property(FFS_INCLUDES adios2::thirdparty::ffs INTERFACE_INCLUDE_DIRECTORIES)
13+
get_target_property(ATL_INCLUDES adios2::thirdparty::atl INTERFACE_INCLUDE_DIRECTORIES)
1414
target_include_directories(Test.Unit.Remote.Serial PRIVATE ${EVPATH_INCLUDES};${FFS_INCLUDES};${ATL_INCLUDES})
1515
endif()
1616
if(UNIX)

thirdparty/CMakeLists.txt

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -69,13 +69,17 @@ adios2_add_thirdparty_target(pugixml pugixml)
6969
add_subdirectory(nlohmann_json)
7070
adios2_add_thirdparty_target(nlohmann_json nlohmann_json_wrapper)
7171

72+
set(yaml_cpp_target "yaml-cpp")
7273
if(ADIOS2_USE_EXTERNAL_YAMLCPP)
7374
find_package(yaml-cpp 0.7.0 REQUIRED)
75+
if (yaml-cpp_VERSION VERSION_GREATER_EQUAL 0.8)
76+
set(yaml_cpp_target "yaml-cpp::yaml-cpp")
77+
endif()
7478
else()
7579
add_subdirectory(yaml-cpp)
7680
endif()
7781

78-
adios2_add_thirdparty_target(yaml-cpp yaml-cpp)
82+
adios2_add_thirdparty_target(yaml-cpp ${yaml_cpp_target})
7983

8084
# YAML-cpp does not add the incdir/libdir to its target rather it exposes it
8185
# through the cmake variables YAML_CPP_INCLUDE_DIR and YAML_CPP_LIBRARY_DIR
@@ -97,19 +101,19 @@ cmake_dependent_option(ADIOS2_USE_EXTERNAL_EVPATH
97101
)
98102
cmake_dependent_option(ADIOS2_USE_EXTERNAL_ATL
99103
"Use an externally supplied ATL library" OFF
100-
"NOT ADIOS2_USE_EXTERNAL_EVPATH" OFF
104+
"NOT ADIOS2_USE_EXTERNAL_EVPATH" ON
101105
)
102106
cmake_dependent_option(ADIOS2_USE_EXTERNAL_FFS
103107
"Use an externally supplied FFS library" OFF
104-
"NOT ADIOS2_USE_EXTERNAL_EVPATH" OFF
108+
"NOT ADIOS2_USE_EXTERNAL_EVPATH" ON
105109
)
106110
cmake_dependent_option(ADIOS2_USE_EXTERNAL_DILL
107111
"Use an externally supplied DILL library" OFF
108-
"NOT ADIOS2_USE_EXTERNAL_FFS" OFF
112+
"NOT ADIOS2_USE_EXTERNAL_FFS" ON
109113
)
110114
cmake_dependent_option(ADIOS2_USE_EXTERNAL_ENET
111115
"Use an externally supplied ENET library" OFF
112-
"NOT ADIOS2_USE_EXTERNAL_EVPATH" OFF
116+
"NOT ADIOS2_USE_EXTERNAL_EVPATH" ON
113117
)
114118

115119
if(NOT ADIOS2_USE_EXTERNAL_FFS)
@@ -126,6 +130,7 @@ if(NOT ADIOS2_USE_EXTERNAL_FFS)
126130
add_subdirectory(ffs)
127131
endif()
128132
find_package(ffs REQUIRED)
133+
adios2_add_thirdparty_target(atl atl::atl)
129134
adios2_add_thirdparty_target(ffs ffs::ffs)
130135

131136
if(NOT ADIOS2_USE_EXTERNAL_EVPATH)

0 commit comments

Comments
 (0)