Closed
Description
Parent Issue:
Child Issues:
- Address issues from TriBITS snapshot into Trilinos from PR trilinos/Trilinos#9894 (#299) #433
- Investigate and address issue with change to -isystem includes for IMPORTED targets (#299) #443
Blocked By: trilinos/Trilinos#8498
Description
One of the things holding back TriBITS and projects using TriBITS in accessing new features of CMake for which TriBITS still using variables to manage compiler options and include directories. This issue is to move to using:
- target_compile_definitions()
- target_compile_features()
- target_compile_options()
- target_include_directories()
- target_link_directories()
- target_link_libraries()
- target_link_options()
and to move completely to targets instead of variables for each TriBITS (internal and external) package.
This needs to be done as part of a comprehensive refactoring as part of #63.
This refactoring should implement and respect this proposed standard for <Package>Config.cmake
files.
Related to:
- SEPW-214
Tasks
- Add
PUBLIC
totarget_link_libraries()
in TriBITS intra-package linking - Add new library
${PACKAGE_NAME}::<lib-name>
targets and${PACKAGE_NAME}::all_libs
INTERFACE library targets for TriBITS packages andtarget_link_libraries( ... PUBLIC ... )
to define dependencies to upstream packages. (see PR Convert TriBITS over to use self-contained modern CMake targets for internal packages (#299) #424) - Experiment with adding new
${TPL_NAME}::all_libs
INTERFACE GLOBAL library targets for TPLs and usetarget_link_libraries( ... INTERFACE ... )
to define dependencies between TPLs. - Add include directories to all internal targets with
target_include_directories()
- Address problems with partial refactoring of TriBITS to modern CMake targets and get merge to Trilinos 'develop' to stick: Address issues from TriBITS snapshot into Trilinos from PR trilinos/Trilinos#9894 (#299) #433
- Complete refactoring of TriBITS targets to use modern CMake targets for all dependencies and managing include directories (no more using variables
<Package>_INCLUDE_DIRS
,<Package>_TPL_INCLUDE_DIRS
,<Package>_LIBRARIES
or<Package>_LIBRARY_DIRS
). - Strip out all old machinery in TriBITS involving vars
<Package>_INCLUDE_DIRS
,<Package>_TPL_INCLUDE_DIRS
,<Package>_LIBRARIES
and<Package>_LIBRARY_DIRS
. - Do some testing with Trilinos, Albany, Nalu, and SPARC.
- Create and post new Trilinos PR to snaphsot updated TriBITS 'master' branch: TriBITS: Switch to modern cmake targets (TriBITSPub/TriBITS#299) trilinos/Trilinos#10614
- Get PR TriBITS: Switch to modern cmake targets (TriBITSPub/TriBITS#299) trilinos/Trilinos#10614 to merge (see Task there)
Metadata
Metadata
Assignees
Type
Projects
Status
Done
Status
Done