Skip to content

Commit

Permalink
WIP: Comment out old TriBITS manual manipulation of includes and libs (
Browse files Browse the repository at this point in the history
…#299)

Here, I just commented out everything that I don't need.  I really need to
just remove it once I get there.

I also changed <Package>_TPL_LIBRARIES and <Project>_TPL_LIBRARIES to list
<tplName>::all_libs instead of library files and list these in generated
<Package>Config.cmake and <Project>Config.cmake files.  I don't think
downsteam customers need this list but it is there if they want to use them
for some reason I can't imagine.
  • Loading branch information
bartlettroscoe committed May 5, 2022
1 parent 2dd69ec commit 025fe3a
Show file tree
Hide file tree
Showing 13 changed files with 343 additions and 383 deletions.
76 changes: 20 additions & 56 deletions test/core/ExamplesUnitTests/TribitsExampleProject_Tests.cmake

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions test/core/ExamplesUnitTests/TribitsHelloWorld_Tests.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -767,8 +767,8 @@ tribits_add_advanced_test( TribitsHelloWorld_install_config_dummy_proj
"TribitsHelloWorld_LINKER = '.*'"
"TribitsHelloWorld_AR = '.*'"
"TribitsHelloWorld_INSTALL_DIR = '.*/TriBITS_TribitsHelloWorld_install_config_dummy_proj/install'"
"TribitsHelloWorld_INCLUDE_DIRS = '.*/TriBITS_TribitsHelloWorld_install_config_dummy_proj/install/include'"
"TribitsHelloWorld_LIBRARY_DIRS = '.*/TriBITS_TribitsHelloWorld_install_config_dummy_proj/install/lib'"
"TribitsHelloWorld_INCLUDE_DIRS = ''"
"TribitsHelloWorld_LIBRARY_DIRS = ''"
"TribitsHelloWorld_LIBRARIES = 'HelloWorld::hello_world_lib'"
"TribitsHelloWorld_TPL_INCLUDE_DIRS = '"
"TribitsHelloWorld_TPL_LIBRARY_DIRS = ''"
Expand Down
48 changes: 24 additions & 24 deletions test/core/TribitsWriteClientExportFiles_UnitTests.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -135,29 +135,29 @@ function(unittest_write_specialized_package_export_makefile_rtop_before_libs)
unittest_file_regex("${GENERATED_EXPORT_CONFIG_FOR_BUILD}"
REGEX_STRINGS
"set[(]RTOp1_CMAKE_BUILD_TYPE .DEBUG."
"set[(]RTOp1_INCLUDE_DIRS .teuchos/core/include.teuchos/numeric/include.."
"set[(]RTOp1_LIBRARY_DIRS .teuchos/core/src.teuchos/numeric/src.."
"set[(]RTOp1_LIBRARIES .teuchoscore.teuchosnumeric.."
"set[(]RTOp1_TPL_INCLUDE_DIRS .lapackhpath/include.blaspath/include.."
"set[(]RTOp1_TPL_LIBRARY_DIRS .lapackhpath/lib.blashpath/lib.."
"set[(]RTOp1_TPL_LIBRARIES .lapackpath/lib/liblapack.a.blaspath/lib/libblas.a.."
"set[(]RTOp1_PACKAGE_LIST .Teuchos.."
"set[(]RTOp1_TPL_LIST .LAPACK.BLAS.."
"set[(]RTOp1_INCLUDE_DIRS ..[)]"
"set[(]RTOp1_LIBRARY_DIRS ..[)]"
"set[(]RTOp1_LIBRARIES .teuchoscore.teuchosnumeric.[)]"
"set[(]RTOp1_TPL_INCLUDE_DIRS ..[)]"
"set[(]RTOp1_TPL_LIBRARY_DIRS ..[)]"
"set[(]RTOp1_TPL_LIBRARIES .LAPACK::all_libs[;]BLAS::all_libs.[)]"
"set[(]RTOp1_PACKAGE_LIST .Teuchos.[)]"
"set[(]RTOp1_TPL_LIST .LAPACK.BLAS.[)]"
"set[(]RTOp1_ENABLE_Teuchos ON[)]"

)

unittest_file_regex("${GENERATED_EXPORT_CONFIG_FOR_INSTALL}"
REGEX_STRINGS
"set[(]RTOp1_CMAKE_BUILD_TYPE .DEBUG."
"set[(]RTOp1_INCLUDE_DIRS .*/dummy_install_include_dir"
"set[(]RTOp1_LIBRARY_DIRS .*/dummy_install_lib_dir"
"set[(]RTOp1_LIBRARIES .teuchoscore.teuchosnumeric.."
"set[(]RTOp1_TPL_INCLUDE_DIRS .lapackhpath/include.blaspath/include.."
"set[(]RTOp1_TPL_LIBRARY_DIRS .lapackhpath/lib.blashpath/lib.."
"set[(]RTOp1_TPL_LIBRARIES .lapackpath/lib/liblapack.a.blaspath/lib/libblas.a.."
"set[(]RTOp1_PACKAGE_LIST .Teuchos.."
"set[(]RTOp1_TPL_LIST .LAPACK.BLAS.."
"set[(]RTOp1_INCLUDE_DIRS ..[)]"
"set[(]RTOp1_LIBRARY_DIRS ..[)]"
"set[(]RTOp1_LIBRARIES .teuchoscore.teuchosnumeric.[)]"
"set[(]RTOp1_TPL_INCLUDE_DIRS ..[)]"
"set[(]RTOp1_TPL_LIBRARY_DIRS ..[)]"
"set[(]RTOp1_TPL_LIBRARIES .LAPACK::all_libs[;]BLAS::all_libs.[)]"
"set[(]RTOp1_PACKAGE_LIST .Teuchos.[)]"
"set[(]RTOp1_TPL_LIST .LAPACK.BLAS.[)]"
"set[(]RTOp1_ENABLE_Teuchos ON[)]"
)

Expand Down Expand Up @@ -225,14 +225,14 @@ function(unittest_write_specialized_package_export_makefile_rtop_after_libs)
unittest_file_regex("${GENERATED_EXPORT_CONFIG_FOR_BUILD}"
REGEX_STRINGS
"set[(]RTOp2_CMAKE_BUILD_TYPE .RELEASE."
"set[(]RTOp2_INCLUDE_DIRS .rtop/include.teuchos/core/include.teuchos/numeric/include.."
"set[(]RTOp2_LIBRARY_DIRS .rtop/src.teuchos/core/src.teuchos/numeric/src.."
"set[(]RTOp2_LIBRARIES .rtop.teuchoscore.teuchosnumeric.."
"set[(]RTOp2_TPL_INCLUDE_DIRS .lapackhpath/include.blaspath/include.."
"set[(]RTOp2_TPL_LIBRARY_DIRS .lapackhpath/lib.blashpath/lib.."
"set[(]RTOp2_TPL_LIBRARIES .lapackpath/lib/liblapack.a.blaspath/lib/libblas.a.."
"set[(]RTOp2_PACKAGE_LIST .RTOp.Teuchos.."
"set[(]RTOp2_TPL_LIST .LAPACK.BLAS.."
"set[(]RTOp2_INCLUDE_DIRS ..[)]"
"set[(]RTOp2_LIBRARY_DIRS ..[)]"
"set[(]RTOp2_LIBRARIES .rtop.teuchoscore.teuchosnumeric.[)]"
"set[(]RTOp2_TPL_INCLUDE_DIRS ..[)]"
"set[(]RTOp2_TPL_LIBRARY_DIRS ..[)]"
"set[(]RTOp2_TPL_LIBRARIES .LAPACK::all_libs[;]BLAS::all_libs.[)]"
"set[(]RTOp2_PACKAGE_LIST .RTOp.Teuchos.[)]"
"set[(]RTOp2_TPL_LIST .LAPACK.BLAS.[)]"
"set[(]RTOp2_ENABLE_Teuchos ON[)]"
)

Expand Down
4 changes: 2 additions & 2 deletions test/ctest_driver/TribitsExampleProject/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2477,7 +2477,7 @@ function(generate_aao_tests)
"EXPORT_CONFIG_FILE = '../BUILD/install/lib/cmake/TribitsExProj/TribitsExProjConfig.cmake'"
"TribitsExProj_FIND_COMPONENTS = 'SimpleCxx[;]WithSubpackagesA[;]WrapExternal'"
"TribitsExProj_LIBRARIES = 'WithSubpackagesA::pws_a[;]SimpleCxx::simplecxx'"
"TribitsExProj_TPL_INCLUDE_DIRS = '.*/examples/tpls/HeaderOnlyTpl'"
"TribitsExProj_TPL_INCLUDE_DIRS = ''"
"TribitsExProj_PACKAGE_LIST = 'WithSubpackages[;]WithSubpackagesC[;]WithSubpackagesB[;]WithSubpackagesA[;]MixedLang[;]SimpleCxx'"
"TribitsExProj_TPL_LIST = 'HeaderOnlyTpl'"
"TribitsExProj_WithSubpackages_FOUND = ''"
Expand Down Expand Up @@ -2595,7 +2595,7 @@ function(generate_aao_tests)
"EXPORT_CONFIG_FILE = '../BUILD/install/lib/cmake/TribitsExProj/TribitsExProjConfig.cmake'"
"TribitsExProj_FIND_COMPONENTS = 'SimpleCxx[;]WithSubpackagesA'"
"TribitsExProj_LIBRARIES = 'WithSubpackagesA::pws_a[;]SimpleCxx::simplecxx'"
"TribitsExProj_TPL_INCLUDE_DIRS = '.*/examples/tpls/HeaderOnlyTpl'"
"TribitsExProj_TPL_INCLUDE_DIRS = ''"
"TribitsExProj_PACKAGE_LIST = 'WithSubpackages[;]WithSubpackagesC[;]WithSubpackagesB[;]WithSubpackagesA[;]MixedLang[;]SimpleCxx'"
"TribitsExProj_TPL_LIST = 'HeaderOnlyTpl'"
"TribitsExProj_WithSubpackages_FOUND = ''"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -93,19 +93,19 @@ set(${EXPORT_FILE_VAR_PREFIX}_AR ${CMAKE_AR})
set(${EXPORT_FILE_VAR_PREFIX}_INSTALL_DIR "@CMAKE_INSTALL_PREFIX@")

## List of package include dirs
set(${EXPORT_FILE_VAR_PREFIX}_INCLUDE_DIRS "${FULL_INCLUDE_DIRS_SET}")
set(${EXPORT_FILE_VAR_PREFIX}_INCLUDE_DIRS "")

## List of package library paths
set(${EXPORT_FILE_VAR_PREFIX}_LIBRARY_DIRS "${FULL_LIBRARY_DIRS_SET}")
set(${EXPORT_FILE_VAR_PREFIX}_LIBRARY_DIRS "")

## List of package libraries
set(${EXPORT_FILE_VAR_PREFIX}_LIBRARIES "${FULL_LIBRARY_SET}")

## Specification of directories for TPL headers
set(${EXPORT_FILE_VAR_PREFIX}_TPL_INCLUDE_DIRS "${${PACKAGE_NAME}_TPL_INCLUDE_DIRS}")
set(${EXPORT_FILE_VAR_PREFIX}_TPL_INCLUDE_DIRS "")

## Specification of directories for TPL libraries
set(${EXPORT_FILE_VAR_PREFIX}_TPL_LIBRARY_DIRS "${${PACKAGE_NAME}_TPL_LIBRARY_DIRS}")
set(${EXPORT_FILE_VAR_PREFIX}_TPL_LIBRARY_DIRS "")

## List of required TPLs
set(${EXPORT_FILE_VAR_PREFIX}_TPL_LIBRARIES "${${PACKAGE_NAME}_TPL_LIBRARIES}")
Expand Down
53 changes: 27 additions & 26 deletions tribits/core/installation/TribitsProjectConfigTemplate.cmake.in
Original file line number Diff line number Diff line change
Expand Up @@ -113,11 +113,11 @@ foreach (comp IN ITEMS ${PDOLLAR}{COMPONENTS_LIST})
# Include the package file.
include(${PDOLLAR}{INCLUDE_FILE})
# Add variables to lists.
list(APPEND ${PROJECT_NAME}_INCLUDE_DIRS ${PDOLLAR}{${PDOLLAR}{comp}_INCLUDE_DIRS})
list(APPEND ${PROJECT_NAME}_LIBRARY_DIRS ${PDOLLAR}{${PDOLLAR}{comp}_LIBRARY_DIRS})
#list(APPEND ${PROJECT_NAME}_INCLUDE_DIRS ${PDOLLAR}{${PDOLLAR}{comp}_INCLUDE_DIRS})
#list(APPEND ${PROJECT_NAME}_LIBRARY_DIRS ${PDOLLAR}{${PDOLLAR}{comp}_LIBRARY_DIRS})
list(APPEND ${PROJECT_NAME}_LIBRARIES ${PDOLLAR}{${PDOLLAR}{comp}_LIBRARIES})
list(APPEND ${PROJECT_NAME}_TPL_INCLUDE_DIRS ${PDOLLAR}{${PDOLLAR}{comp}_TPL_INCLUDE_DIRS})
list(APPEND ${PROJECT_NAME}_TPL_LIBRARY_DIRS ${PDOLLAR}{${PDOLLAR}{comp}_TPL_LIBRARY_DIRS})
#list(APPEND ${PROJECT_NAME}_TPL_INCLUDE_DIRS ${PDOLLAR}{${PDOLLAR}{comp}_TPL_INCLUDE_DIRS})
#list(APPEND ${PROJECT_NAME}_TPL_LIBRARY_DIRS ${PDOLLAR}{${PDOLLAR}{comp}_TPL_LIBRARY_DIRS})
list(APPEND ${PROJECT_NAME}_TPL_LIBRARIES ${PDOLLAR}{${PDOLLAR}{comp}_TPL_LIBRARIES})
else()
set(${PROJECT_NAME}_${PDOLLAR}{comp}_FOUND FALSE)
Expand All @@ -132,35 +132,36 @@ endforeach()
# Resolve absolute paths and remove duplicate paths
# for LIBRARY_DIRS and INCLUDE_DIRS
# This reduces stress on regular expressions later
set(short_dirs)
foreach(dir ${PDOLLAR}{${PROJECT_NAME}_INCLUDE_DIRS})
get_filename_component(dir_abs ${PDOLLAR}{dir} ABSOLUTE)
list(APPEND short_dirs ${PDOLLAR}{dir_abs})
endforeach()
list(REMOVE_DUPLICATES short_dirs)
set(${PROJECT_NAME}_INCLUDE_DIRS ${PDOLLAR}{short_dirs})

set(short_dirs)
foreach(dir ${PDOLLAR}{${PROJECT_NAME}_LIBRARY_DIRS})
get_filename_component(dir_abs ${PDOLLAR}{dir} ABSOLUTE)
list(APPEND short_dirs ${PDOLLAR}{dir_abs})
endforeach()
list(REMOVE_DUPLICATES short_dirs)
set(${PROJECT_NAME}_LIBRARY_DIRS ${PDOLLAR}{short_dirs})
#set(short_dirs)
#foreach(dir ${PDOLLAR}{${PROJECT_NAME}_INCLUDE_DIRS})
# get_filename_component(dir_abs ${PDOLLAR}{dir} ABSOLUTE)
# list(APPEND short_dirs ${PDOLLAR}{dir_abs})
#endforeach()
#list(REMOVE_DUPLICATES short_dirs)
set(${PROJECT_NAME}_INCLUDE_DIRS "")

#set(short_dirs)
#foreach(dir ${PDOLLAR}{${PROJECT_NAME}_LIBRARY_DIRS})
# get_filename_component(dir_abs ${PDOLLAR}{dir} ABSOLUTE)
# list(APPEND short_dirs ${PDOLLAR}{dir_abs})
#endforeach()
#list(REMOVE_DUPLICATES short_dirs)
set(${PROJECT_NAME}_LIBRARY_DIRS "")

# Remove duplicates in ${PROJECT_NAME}_LIBRARIES
list(REVERSE ${PROJECT_NAME}_LIBRARIES)
list(REMOVE_DUPLICATES ${PROJECT_NAME}_LIBRARIES)
list(REVERSE ${PROJECT_NAME}_LIBRARIES)

# Remove duplicates in ${PROJECT_NAME}_TPL_INCLUDE_DIRS
if (${PROJECT_NAME}_TPL_INCLUDE_DIRS)
list(REMOVE_DUPLICATES ${PROJECT_NAME}_TPL_INCLUDE_DIRS)
endif()
## Remove duplicates in ${PROJECT_NAME}_TPL_INCLUDE_DIRS
#if (${PROJECT_NAME}_TPL_INCLUDE_DIRS)
# list(REMOVE_DUPLICATES ${PROJECT_NAME}_TPL_INCLUDE_DIRS)
#endif()

# NOTE: It is *NOT* safe to try to remove duplicate in
# ${PROJECT_NAME}_TPL_LIBRARIES because these can be specified as -L, -l, etc.
# Actually, we should think about that.
# Remove duplicates in ${PROJECT_NAME}_TPL_LIBRARIES
list(REVERSE ${PROJECT_NAME}_TPL_LIBRARIES)
list(REMOVE_DUPLICATES ${PROJECT_NAME}_TPL_LIBRARIES)
list(REVERSE ${PROJECT_NAME}_TPL_LIBRARIES)

## ---------------------------------------------------------------------------
## MPI specific variables
Expand Down
40 changes: 20 additions & 20 deletions tribits/core/package_arch/TribitsAddExecutable.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -427,8 +427,8 @@ function(tribits_add_executable EXE_NAME)
set(LIBRARY_NAME_PREFIX "${${PROJECT_NAME}_LIBRARY_NAME_PREFIX}")

if (NOT TRIBITS_ADD_EXECUTABLE_UNIT_TESTING)
tribits_include_directories(REQUIRED_DURING_INSTALLATION_TESTING
${${PACKAGE_NAME}_INCLUDE_DIRS})
#tribits_include_directories(REQUIRED_DURING_INSTALLATION_TESTING
# ${${PACKAGE_NAME}_INCLUDE_DIRS})
# set_property(DIRECTORY APPEND PROPERTY PACKAGE_LIBRARY_DIRS
# ${${PACKAGE_NAME}_LIBRARY_DIRS})
endif()
Expand Down Expand Up @@ -556,10 +556,10 @@ function(tribits_add_executable EXE_NAME)
set(TESTONLYLIB "${LIBRARY_NAME_PREFIX}${TESTONLYLIB_IN}")
tribits_lib_is_testonly(${TESTONLYLIB} libIsTestOnlyLib)
if (libIsTestOnlyLib)
if (${PROJECT_NAME}_VERBOSE_CONFIGURE)
message(STATUS "Adding include directories ${TESTONLYLIB}_INCLUDE_DIRS ...")
endif()
include_directories(${${TESTONLYLIB}_INCLUDE_DIRS})
#if (${PROJECT_NAME}_VERBOSE_CONFIGURE)
# message(STATUS "Adding include directories ${TESTONLYLIB}_INCLUDE_DIRS ...")
#endif()
#include_directories(${${TESTONLYLIB}_INCLUDE_DIRS})
endif()
endforeach()

Expand Down Expand Up @@ -622,23 +622,23 @@ function(tribits_add_executable EXE_NAME)
# dependent Packages and TPLs and accumulate the list of libraries that will
# need to be linked to.

if(NOT ${PROJECT_NAME}_ENABLE_INSTALLATION_TESTING
AND NOT ${PACKAGE_NAME}_INCLUDE_DIRS
)
# No libraries have been added for this package so
# add the upstream package and TPL includes and libraries
tribits_sort_and_append_package_include_and_link_dirs_and_libs(
${PACKAGE_NAME} LIB LINK_LIBS)
tribits_sort_and_append_tpl_include_and_link_dirs_and_libs(
${PACKAGE_NAME} LIB LINK_LIBS)
endif()
# if(NOT ${PROJECT_NAME}_ENABLE_INSTALLATION_TESTING
# AND NOT ${PACKAGE_NAME}_INCLUDE_DIRS
# )
# # No libraries have been added for this package so
# # add the upstream package and TPL includes and libraries
# #tribits_sort_and_append_package_include_and_link_dirs_and_libs(
# # ${PACKAGE_NAME} LIB LINK_LIBS)
# #tribits_sort_and_append_tpl_include_and_link_dirs_and_libs(
# # ${PACKAGE_NAME} LIB LINK_LIBS)
# endif()

tribits_sort_and_append_package_include_and_link_dirs_and_libs(
${PACKAGE_NAME} TEST LINK_LIBS)
#tribits_sort_and_append_package_include_and_link_dirs_and_libs(
# ${PACKAGE_NAME} TEST LINK_LIBS)

if(NOT ${PROJECT_NAME}_ENABLE_INSTALLATION_TESTING)
tribits_sort_and_append_tpl_include_and_link_dirs_and_libs(
${PACKAGE_NAME} TEST LINK_LIBS)
#tribits_sort_and_append_tpl_include_and_link_dirs_and_libs(
# ${PACKAGE_NAME} TEST LINK_LIBS)
else()
list(APPEND LINK_LIBS ${${PACKAGE_NAME}_INSTALLATION_TPL_LIBRARIES})
endif()
Expand Down
Loading

0 comments on commit 025fe3a

Please sign in to comment.