Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix find_package() from separate subdirs for <Package>Config.cmake files (#505) #506

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 20 additions & 2 deletions test/core/ExamplesUnitTests/TribitsExampleProject_Tests.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,7 @@ function(TribitsExampleProject_ALL_ST_NoFortran sharedOrStatic serialOrMpi)

set(testBaseName ${CMAKE_CURRENT_FUNCTION}_${sharedOrStatic}_${serialOrMpi})
set(testName ${PACKAGE_NAME}_${testBaseName})
set(testDir "${CMAKE_CURRENT_BINARY_DIR}/${testName}")

if (sharedOrStatic STREQUAL "SHARED")
set(BUILD_SHARED_LIBS_VAL ON)
Expand Down Expand Up @@ -478,6 +479,20 @@ function(TribitsExampleProject_ALL_ST_NoFortran sharedOrStatic serialOrMpi)
ALWAYS_FAIL_ON_NONZERO_RETURN

TEST_9
MESSAGE "Run find_package() from two different subdirs with related packages"
WORKING_DIRECTORY find_package_two_dirs
CMND ${CMAKE_COMMAND}
ARGS
-DCMAKE_PREFIX_PATH=${testDir}/install
${CMAKE_CURRENT_SOURCE_DIR}/find_package_two_dirs
PASS_REGULAR_EXPRESSION_ALL
"WithSubpackagesA_FOUND = '1'"
"WithSubpackagesB_FOUND = '1'"
"-- Configuring done"
"-- Generating done"
ALWAYS_FAIL_ON_NONZERO_RETURN

TEST_10
MESSAGE "Create the tarball"
CMND make ARGS package_source
PASS_REGULAR_EXPRESSION_ALL
Expand All @@ -494,12 +509,12 @@ function(TribitsExampleProject_ALL_ST_NoFortran sharedOrStatic serialOrMpi)
"CPack: - package: .*/ExamplesUnitTests/${testName}/tribitsexproj-1.1-Source.tar.bz2 generated."
ALWAYS_FAIL_ON_NONZERO_RETURN

TEST_10
TEST_11
MESSAGE "Untar the tarball"
CMND tar ARGS -xzf tribitsexproj-1.1-Source.tar.gz
ALWAYS_FAIL_ON_NONZERO_RETURN

TEST_11
TEST_12
MESSAGE "Make sure right directories are excluded"
CMND diff
ARGS -qr
Expand Down Expand Up @@ -546,6 +561,9 @@ endfunction()
# <Project>::all_selected_libs target and the
# <Project>_SELECTED_PACKAGE_LIST variable.
#
# * Test calling find_package(<Package>) from different subdirs for related
# packages works (see TriBiTS GitHub issue #505).
#
# * Creates source tarball, untars it, and checks its contents removed
#
# * ???
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
cmake_minimum_required(VERSION 3.3)

project(FindPackageTwoDirs NONE)

add_subdirectory(find_WithSubpackagesA)
add_subdirectory(find_WithSubpackagesB)
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
find_package(WithSubpackagesA REQUIRED)
message("WithSubpackagesA_FOUND = '${WithSubpackagesA_FOUND}'")
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
find_package(WithSubpackagesB REQUIRED)
message("WithSubpackagesB_FOUND = '${WithSubpackagesB_FOUND}'")
106 changes: 56 additions & 50 deletions test/core/TribitsExternalPackageWriteConfigFile_UnitTests.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -230,7 +230,7 @@ function(unittest_tribits_extpkg_process_libraries_list_incl_dirs_0_lib_files_1)
[=[
#beginning

add_library(SomeTpl::somelib IMPORTED UNKNOWN GLOBAL)
add_library(SomeTpl::somelib IMPORTED UNKNOWN)
set_target_properties(SomeTpl::somelib PROPERTIES
IMPORTED_LOCATION "/some/explicit/path/libsomelib.so")

Expand Down Expand Up @@ -270,11 +270,11 @@ function(unittest_tribits_extpkg_process_libraries_list_incl_dirs_0_lib_files_2)
[=[
#beginning

add_library(SomeTpl::somelib1 IMPORTED UNKNOWN GLOBAL)
add_library(SomeTpl::somelib1 IMPORTED UNKNOWN)
set_target_properties(SomeTpl::somelib1 PROPERTIES
IMPORTED_LOCATION "/some/explicit/path/libsomelib1.so")

add_library(SomeTpl::somelib2 IMPORTED UNKNOWN GLOBAL)
add_library(SomeTpl::somelib2 IMPORTED UNKNOWN)
set_target_properties(SomeTpl::somelib2 PROPERTIES
IMPORTED_LOCATION "/some/explicit/path/libsomelib2.so")
target_link_libraries(SomeTpl::somelib2
Expand Down Expand Up @@ -318,17 +318,17 @@ function(unittest_tribits_extpkg_process_libraries_list_incl_dirs_0_lib_files_3)
[=[
#beginning

add_library(SomeTpl::somelib1 IMPORTED UNKNOWN GLOBAL)
add_library(SomeTpl::somelib1 IMPORTED UNKNOWN)
set_target_properties(SomeTpl::somelib1 PROPERTIES
IMPORTED_LOCATION "/some/explicit/path/libsomelib1.so")

add_library(SomeTpl::somelib2 IMPORTED UNKNOWN GLOBAL)
add_library(SomeTpl::somelib2 IMPORTED UNKNOWN)
set_target_properties(SomeTpl::somelib2 PROPERTIES
IMPORTED_LOCATION "/some/explicit/path/libsomelib2.so")
target_link_libraries(SomeTpl::somelib2
INTERFACE SomeTpl::somelib1)

add_library(SomeTpl::somelib3 IMPORTED UNKNOWN GLOBAL)
add_library(SomeTpl::somelib3 IMPORTED UNKNOWN)
set_target_properties(SomeTpl::somelib3 PROPERTIES
IMPORTED_LOCATION "/some/explicit/path/libsomelib3.so")
target_link_libraries(SomeTpl::somelib3
Expand Down Expand Up @@ -371,7 +371,7 @@ function(unittest_tribits_extpkg_process_libraries_list_incl_dirs_0_lib_opts_1_1
[=[
#beginning

add_library(SomeTpl::lib1 IMPORTED INTERFACE GLOBAL)
add_library(SomeTpl::lib1 IMPORTED INTERFACE)
set_target_properties(SomeTpl::lib1 PROPERTIES
IMPORTED_LIBNAME "lib1")

Expand Down Expand Up @@ -413,11 +413,11 @@ function(unittest_tribits_extpkg_process_libraries_list_incl_dirs_0_lib_opts_2_2
[=[
#beginning

add_library(SomeTpl::lib1 IMPORTED INTERFACE GLOBAL)
add_library(SomeTpl::lib1 IMPORTED INTERFACE)
set_target_properties(SomeTpl::lib1 PROPERTIES
IMPORTED_LIBNAME "lib1")

add_library(SomeTpl::lib2 IMPORTED INTERFACE GLOBAL)
add_library(SomeTpl::lib2 IMPORTED INTERFACE)
set_target_properties(SomeTpl::lib2 PROPERTIES
IMPORTED_LIBNAME "lib2")
target_link_libraries(SomeTpl::lib2
Expand Down Expand Up @@ -462,17 +462,17 @@ function(unittest_tribits_extpkg_process_libraries_list_incl_dirs_0_lib_opts_3_3
[=[
#beginning

add_library(SomeTpl::lib1 IMPORTED INTERFACE GLOBAL)
add_library(SomeTpl::lib1 IMPORTED INTERFACE)
set_target_properties(SomeTpl::lib1 PROPERTIES
IMPORTED_LIBNAME "lib1")

add_library(SomeTpl::lib2 IMPORTED INTERFACE GLOBAL)
add_library(SomeTpl::lib2 IMPORTED INTERFACE)
set_target_properties(SomeTpl::lib2 PROPERTIES
IMPORTED_LIBNAME "lib2")
target_link_libraries(SomeTpl::lib2
INTERFACE SomeTpl::lib1)

add_library(SomeTpl::lib3 IMPORTED INTERFACE GLOBAL)
add_library(SomeTpl::lib3 IMPORTED INTERFACE)
set_target_properties(SomeTpl::lib3 PROPERTIES
IMPORTED_LIBNAME "lib3")
target_link_libraries(SomeTpl::lib3
Expand Down Expand Up @@ -566,11 +566,11 @@ function(unittest_tribits_extpkg_process_libraries_list_incl_dirs_0_libname_2)
[=[
#beginning

add_library(SomeTpl::c IMPORTED INTERFACE GLOBAL)
add_library(SomeTpl::c IMPORTED INTERFACE)
set_target_properties(SomeTpl::c PROPERTIES
IMPORTED_LIBNAME "c")

add_library(SomeTpl::some1_Longer2-Name3 IMPORTED INTERFACE GLOBAL)
add_library(SomeTpl::some1_Longer2-Name3 IMPORTED INTERFACE)
set_target_properties(SomeTpl::some1_Longer2-Name3 PROPERTIES
IMPORTED_LIBNAME "some1_Longer2-Name3")
target_link_libraries(SomeTpl::some1_Longer2-Name3
Expand Down Expand Up @@ -615,17 +615,17 @@ function(unittest_tribits_extpkg_process_libraries_list_incl_dirs_0_lib_opts_2_2
[=[
#beginning

add_library(SomeTpl::lib1 IMPORTED INTERFACE GLOBAL)
add_library(SomeTpl::lib1 IMPORTED INTERFACE)
set_target_properties(SomeTpl::lib1 PROPERTIES
IMPORTED_LIBNAME "lib1")

add_library(SomeTpl::somelib IMPORTED STATIC GLOBAL)
add_library(SomeTpl::somelib IMPORTED STATIC)
set_target_properties(SomeTpl::somelib PROPERTIES
IMPORTED_LOCATION "/some/other/path/to/libsomelib.a")
target_link_libraries(SomeTpl::somelib
INTERFACE SomeTpl::lib1)

add_library(SomeTpl::lib3 IMPORTED INTERFACE GLOBAL)
add_library(SomeTpl::lib3 IMPORTED INTERFACE)
set_target_properties(SomeTpl::lib3 PROPERTIES
IMPORTED_LIBNAME "lib3")
target_link_libraries(SomeTpl::lib3
Expand Down Expand Up @@ -672,17 +672,17 @@ function(unittest_tribits_extpkg_process_libraries_list_duplicate_libs)
[=[
#beginning

add_library(SomeTpl::lib1 IMPORTED INTERFACE GLOBAL)
add_library(SomeTpl::lib1 IMPORTED INTERFACE)
set_target_properties(SomeTpl::lib1 PROPERTIES
IMPORTED_LIBNAME "lib1")

add_library(SomeTpl::somelib IMPORTED STATIC GLOBAL)
add_library(SomeTpl::somelib IMPORTED STATIC)
set_target_properties(SomeTpl::somelib PROPERTIES
IMPORTED_LOCATION "/some/other/path/to/libsomelib.a")
target_link_libraries(SomeTpl::somelib
INTERFACE SomeTpl::lib1)

add_library(SomeTpl::lib3 IMPORTED INTERFACE GLOBAL)
add_library(SomeTpl::lib3 IMPORTED INTERFACE)
set_target_properties(SomeTpl::lib3 PROPERTIES
IMPORTED_LIBNAME "lib3")
target_link_libraries(SomeTpl::lib3
Expand Down Expand Up @@ -727,7 +727,7 @@ function(unittest_tribits_extpkg_process_libraries_list_incl_dirs_0_lib_files_1_
[=[
#beginning

add_library(SomeTpl::somelib IMPORTED UNKNOWN GLOBAL)
add_library(SomeTpl::somelib IMPORTED UNKNOWN)
set_target_properties(SomeTpl::somelib PROPERTIES
IMPORTED_LOCATION "/some/explicit/path/libsomelib.so")
target_link_libraries(SomeTpl::somelib
Expand Down Expand Up @@ -775,7 +775,7 @@ function(unittest_tribits_extpkg_process_libraries_list_incl_dirs_0_lib_files_3_
[=[
#beginning

add_library(SomeTpl::somelib1 IMPORTED UNKNOWN GLOBAL)
add_library(SomeTpl::somelib1 IMPORTED UNKNOWN)
set_target_properties(SomeTpl::somelib1 PROPERTIES
IMPORTED_LOCATION "/some/explicit/path/libsomelib1.so")
target_link_libraries(SomeTpl::somelib1
Expand All @@ -784,13 +784,13 @@ target_link_libraries(SomeTpl::somelib1
INTERFACE $<LINK_ONLY:DefaultVisTpl::all_libs> # i.e. PRIVATE
)

add_library(SomeTpl::somelib2 IMPORTED UNKNOWN GLOBAL)
add_library(SomeTpl::somelib2 IMPORTED UNKNOWN)
set_target_properties(SomeTpl::somelib2 PROPERTIES
IMPORTED_LOCATION "/some/explicit/path/libsomelib2.so")
target_link_libraries(SomeTpl::somelib2
INTERFACE SomeTpl::somelib1)

add_library(SomeTpl::somelib3 IMPORTED UNKNOWN GLOBAL)
add_library(SomeTpl::somelib3 IMPORTED UNKNOWN)
set_target_properties(SomeTpl::somelib3 PROPERTIES
IMPORTED_LOCATION "/some/explicit/path/libsomelib3.so")
target_link_libraries(SomeTpl::somelib3
Expand Down Expand Up @@ -831,11 +831,11 @@ if (TARGET SomeTpl::all_libs)
return()
endif()

add_library(SomeTpl::somelib IMPORTED UNKNOWN GLOBAL)
add_library(SomeTpl::somelib IMPORTED UNKNOWN)
set_target_properties(SomeTpl::somelib PROPERTIES
IMPORTED_LOCATION "/some/explicit/path/libsomelib.so")

add_library(SomeTpl::all_libs INTERFACE IMPORTED GLOBAL)
add_library(SomeTpl::all_libs INTERFACE IMPORTED)
target_link_libraries(SomeTpl::all_libs
INTERFACE SomeTpl::somelib
)
Expand Down Expand Up @@ -870,7 +870,7 @@ if (TARGET SomeTpl::all_libs)
return()
endif()

add_library(SomeTpl::all_libs INTERFACE IMPORTED GLOBAL)
add_library(SomeTpl::all_libs INTERFACE IMPORTED)
target_include_directories(SomeTpl::all_libs SYSTEM
INTERFACE "/some/path/to/include/d"
INTERFACE "/some/other/path/to/include/e"
Expand Down Expand Up @@ -906,11 +906,11 @@ if (TARGET SomeTpl::all_libs)
return()
endif()

add_library(SomeTpl::somelib IMPORTED UNKNOWN GLOBAL)
add_library(SomeTpl::somelib IMPORTED UNKNOWN)
set_target_properties(SomeTpl::somelib PROPERTIES
IMPORTED_LOCATION "/some/explicit/path/libsomelib.so")

add_library(SomeTpl::all_libs INTERFACE IMPORTED GLOBAL)
add_library(SomeTpl::all_libs INTERFACE IMPORTED)
target_link_libraries(SomeTpl::all_libs
INTERFACE SomeTpl::somelib
)
Expand Down Expand Up @@ -948,11 +948,11 @@ if (TARGET SomeTpl::all_libs)
return()
endif()

add_library(SomeTpl::somelib IMPORTED UNKNOWN GLOBAL)
add_library(SomeTpl::somelib IMPORTED UNKNOWN)
set_target_properties(SomeTpl::somelib PROPERTIES
IMPORTED_LOCATION "/some/explicit/path/libsomelib.so")

add_library(SomeTpl::all_libs INTERFACE IMPORTED GLOBAL)
add_library(SomeTpl::all_libs INTERFACE IMPORTED)
target_link_libraries(SomeTpl::all_libs
INTERFACE SomeTpl::somelib
)
Expand Down Expand Up @@ -996,17 +996,17 @@ if (TARGET SomeTpl::all_libs)
return()
endif()

add_library(SomeTpl::lib1 IMPORTED INTERFACE GLOBAL)
add_library(SomeTpl::lib1 IMPORTED INTERFACE)
set_target_properties(SomeTpl::lib1 PROPERTIES
IMPORTED_LIBNAME "lib1")

add_library(SomeTpl::lib2 IMPORTED INTERFACE GLOBAL)
add_library(SomeTpl::lib2 IMPORTED INTERFACE)
set_target_properties(SomeTpl::lib2 PROPERTIES
IMPORTED_LIBNAME "lib2")
target_link_libraries(SomeTpl::lib2
INTERFACE SomeTpl::lib1)

add_library(SomeTpl::all_libs INTERFACE IMPORTED GLOBAL)
add_library(SomeTpl::all_libs INTERFACE IMPORTED)
target_link_libraries(SomeTpl::all_libs
INTERFACE SomeTpl::lib1
INTERFACE SomeTpl::lib2
Expand Down Expand Up @@ -1064,23 +1064,23 @@ if (TARGET SomeTpl::all_libs)
return()
endif()

add_library(SomeTpl::lib1 IMPORTED INTERFACE GLOBAL)
add_library(SomeTpl::lib1 IMPORTED INTERFACE)
set_target_properties(SomeTpl::lib1 PROPERTIES
IMPORTED_LIBNAME "lib1")

add_library(SomeTpl::some-other-option IMPORTED INTERFACE GLOBAL)
add_library(SomeTpl::some-other-option IMPORTED INTERFACE)
set_target_properties(SomeTpl::some-other-option PROPERTIES
IMPORTED_LIBNAME "some-other-option")
target_link_libraries(SomeTpl::some-other-option
INTERFACE SomeTpl::lib1)

add_library(SomeTpl::lib2 IMPORTED INTERFACE GLOBAL)
add_library(SomeTpl::lib2 IMPORTED INTERFACE)
set_target_properties(SomeTpl::lib2 PROPERTIES
IMPORTED_LIBNAME "lib2")
target_link_libraries(SomeTpl::lib2
INTERFACE SomeTpl::some-other-option)

add_library(SomeTpl::all_libs INTERFACE IMPORTED GLOBAL)
add_library(SomeTpl::all_libs INTERFACE IMPORTED)
target_link_libraries(SomeTpl::all_libs
INTERFACE SomeTpl::lib1
INTERFACE SomeTpl::some-other-option
Expand Down Expand Up @@ -1151,21 +1151,27 @@ set(SomeTpl_SearchNoOtherPathsArgs
NO_CMAKE_FIND_ROOT_PATH
)

set(PublicTpl_DIR "${CMAKE_CURRENT_LIST_DIR}/../PublicTpl")
find_dependency(PublicTpl REQUIRED CONFIG ${SomeTpl_SearchNoOtherPathsArgs})
unset(PublicTpl_DIR)
if (NOT TARGET PublicTpl::all_libs)
set(PublicTpl_DIR "${CMAKE_CURRENT_LIST_DIR}/../PublicTpl")
find_dependency(PublicTpl REQUIRED CONFIG ${SomeTpl_SearchNoOtherPathsArgs})
unset(PublicTpl_DIR)
endif()

set(PrivateTpl_DIR "${CMAKE_CURRENT_LIST_DIR}/../PrivateTpl")
find_dependency(PrivateTpl REQUIRED CONFIG ${SomeTpl_SearchNoOtherPathsArgs})
unset(PrivateTpl_DIR)
if (NOT TARGET PrivateTpl::all_libs)
set(PrivateTpl_DIR "${CMAKE_CURRENT_LIST_DIR}/../PrivateTpl")
find_dependency(PrivateTpl REQUIRED CONFIG ${SomeTpl_SearchNoOtherPathsArgs})
unset(PrivateTpl_DIR)
endif()

set(DefaultVisTpl_DIR "${CMAKE_CURRENT_LIST_DIR}/../DefaultVisTpl")
find_dependency(DefaultVisTpl REQUIRED CONFIG ${SomeTpl_SearchNoOtherPathsArgs})
unset(DefaultVisTpl_DIR)
if (NOT TARGET DefaultVisTpl::all_libs)
set(DefaultVisTpl_DIR "${CMAKE_CURRENT_LIST_DIR}/../DefaultVisTpl")
find_dependency(DefaultVisTpl REQUIRED CONFIG ${SomeTpl_SearchNoOtherPathsArgs})
unset(DefaultVisTpl_DIR)
endif()

unset(SomeTpl_SearchNoOtherPathsArgs)

add_library(SomeTpl::lib1 IMPORTED INTERFACE GLOBAL)
add_library(SomeTpl::lib1 IMPORTED INTERFACE)
set_target_properties(SomeTpl::lib1 PROPERTIES
IMPORTED_LIBNAME "lib1")
target_link_libraries(SomeTpl::lib1
Expand All @@ -1174,13 +1180,13 @@ target_link_libraries(SomeTpl::lib1
INTERFACE $<LINK_ONLY:DefaultVisTpl::all_libs> # i.e. PRIVATE
)

add_library(SomeTpl::lib2 IMPORTED INTERFACE GLOBAL)
add_library(SomeTpl::lib2 IMPORTED INTERFACE)
set_target_properties(SomeTpl::lib2 PROPERTIES
IMPORTED_LIBNAME "lib2")
target_link_libraries(SomeTpl::lib2
INTERFACE SomeTpl::lib1)

add_library(SomeTpl::all_libs INTERFACE IMPORTED GLOBAL)
add_library(SomeTpl::all_libs INTERFACE IMPORTED)
target_link_libraries(SomeTpl::all_libs
INTERFACE SomeTpl::lib1
INTERFACE SomeTpl::lib2
Expand Down
Loading