From d4002ad503a1bf610be725d2f2bd635a33537d6c Mon Sep 17 00:00:00 2001
From: Simon Praetorius <simon.praetorius@tu-dresden.de>
Date: Wed, 27 Nov 2024 11:02:18 +0100
Subject: [PATCH] Link all targets in a directory against Dune::Common

---
 dune/common/parallel/benchmark/CMakeLists.txt |  2 +-
 dune/common/parallel/test/CMakeLists.txt      | 13 +---
 dune/common/simd/test/CMakeLists.txt          |  7 +-
 dune/common/std/test/CMakeLists.txt           | 21 +++---
 dune/common/test/CMakeLists.txt               | 75 ++-----------------
 5 files changed, 21 insertions(+), 97 deletions(-)

diff --git a/dune/common/parallel/benchmark/CMakeLists.txt b/dune/common/parallel/benchmark/CMakeLists.txt
index d6256d7b0..b9992ac87 100644
--- a/dune/common/parallel/benchmark/CMakeLists.txt
+++ b/dune/common/parallel/benchmark/CMakeLists.txt
@@ -2,7 +2,7 @@
 # SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception
 
 add_executable(mpi_collective_benchmark EXCLUDE_FROM_ALL mpi_collective_benchmark.cc)
-dune_target_link_libraries(mpi_collective_benchmark PUBLIC "dunecommon")
+target_link_libraries(mpi_collective_benchmark PRIVATE Dune::Common)
 add_dune_mpi_flags(mpi_collective_benchmark)
 
 configure_file(options.ini options.ini COPYONLY)
diff --git a/dune/common/parallel/test/CMakeLists.txt b/dune/common/parallel/test/CMakeLists.txt
index 3695e30d4..ccd9faaaa 100644
--- a/dune/common/parallel/test/CMakeLists.txt
+++ b/dune/common/parallel/test/CMakeLists.txt
@@ -1,19 +1,19 @@
 # SPDX-FileCopyrightInfo: Copyright © DUNE Project contributors, see file LICENSE.md in module root
 # SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception
 
+# Link all test targets in this directory against Dune::Common
+link_libraries(Dune::Common)
+
 dune_add_test(SOURCES communicationtest.cc
-              LINK_LIBRARIES dunecommon
               MPI_RANKS 1 2 4
               TIMEOUT 300
               CMAKE_GUARD MPI_FOUND
               LABELS quick)
 
 dune_add_test(SOURCES indexsettest.cc
-              LINK_LIBRARIES dunecommon
               LABELS quick)
 
 dune_add_test(SOURCES parmetistest.cc
-              LINK_LIBRARIES dunecommon
               MPI_RANKS 3
               TIMEOUT 300
               CMAKE_GUARD "HAVE_MPI AND ParMETIS_FOUND"
@@ -22,18 +22,15 @@ add_dune_mpi_flags(parmetistest)
 add_dune_parmetis_flags(parmetistest)
 
 dune_add_test(SOURCES remoteindicestest.cc
-              LINK_LIBRARIES dunecommon
               MPI_RANKS 1 2 4
               TIMEOUT 300
               CMAKE_GUARD HAVE_MPI
               LABELS quick)
 
 dune_add_test(SOURCES selectiontest.cc
-              LINK_LIBRARIES dunecommon
               LABELS quick)
 
 dune_add_test(SOURCES syncertest.cc
-              LINK_LIBRARIES dunecommon
               MPI_RANKS 1 2 4
               TIMEOUT 300
               CMAKE_GUARD HAVE_MPI
@@ -46,27 +43,23 @@ dune_add_test(SOURCES variablesizecommunicatortest.cc
               LABELS quick)
 
 dune_add_test(SOURCES mpidatatest.cc
-              LINK_LIBRARIES dunecommon
               MPI_RANKS 2
               TIMEOUT 300
               LABELS quick)
 
 dune_add_test(SOURCES mpifuturetest.cc
-              LINK_LIBRARIES dunecommon
               CMAKE_GUARD MPI_FOUND
               MPI_RANKS 1 2 4
               TIMEOUT 300
               LABELS quick)
 
 dune_add_test(SOURCES mpipacktest.cc
-              LINK_LIBRARIES dunecommon
               MPI_RANKS 2
               TIMEOUT 300
               CMAKE_GUARD HAVE_MPI
               LABELS quick)
 
 dune_add_test(SOURCES mpigatherscattertest.cc
-              LINK_LIBRARIES dunecommon
               MPI_RANKS 2
               TIMEOUT 300
               CMAKE_GUARD MPI_FOUND
diff --git a/dune/common/simd/test/CMakeLists.txt b/dune/common/simd/test/CMakeLists.txt
index a7081cdb5..e92833df6 100644
--- a/dune/common/simd/test/CMakeLists.txt
+++ b/dune/common/simd/test/CMakeLists.txt
@@ -7,6 +7,9 @@
 # standardtest).
 include(DuneInstance)
 
+# Link all test targets in this directory against Dune::Common
+link_libraries(Dune::Common)
+
 set(TYPES
   char "unsigned char" "signed char"
   short int long "long long"
@@ -33,7 +36,6 @@ dune_instance_end()
 list(FILTER DUNE_INSTANCE_GENERATED INCLUDE REGEX [[\.cc$]])
 dune_add_test(NAME looptest
   SOURCES ${DUNE_INSTANCE_GENERATED}
-  LINK_LIBRARIES dunecommon
 )
 # no need to install looptest.hh, used by looptest*.cc only
 
@@ -58,7 +60,6 @@ dune_instance_end()
 list(FILTER DUNE_INSTANCE_GENERATED INCLUDE REGEX [[\.cc$]])
 dune_add_test(NAME standardtest
   SOURCES ${DUNE_INSTANCE_GENERATED}
-  LINK_LIBRARIES dunecommon
 )
 # no need to install standardtest.hh, used by standardtest*.cc only
 
@@ -84,7 +85,6 @@ dune_instance_end()
 list(FILTER DUNE_INSTANCE_GENERATED INCLUDE REGEX [[\.cc$]])
 dune_add_test(NAME vcarraytest
   SOURCES ${DUNE_INSTANCE_GENERATED}
-  LINK_LIBRARIES dunecommon
   CMAKE_GUARD Vc_FOUND
 )
 add_dune_vc_flags(vcarraytest)
@@ -107,7 +107,6 @@ dune_instance_end()
 list(FILTER DUNE_INSTANCE_GENERATED INCLUDE REGEX [[\.cc$]])
 dune_add_test(NAME vcvectortest
   SOURCES ${DUNE_INSTANCE_GENERATED}
-  LINK_LIBRARIES dunecommon
   CMAKE_GUARD Vc_FOUND
 )
 add_dune_vc_flags(vcvectortest)
diff --git a/dune/common/std/test/CMakeLists.txt b/dune/common/std/test/CMakeLists.txt
index 1d008b190..e653c875f 100644
--- a/dune/common/std/test/CMakeLists.txt
+++ b/dune/common/std/test/CMakeLists.txt
@@ -1,26 +1,23 @@
 # SPDX-FileCopyrightInfo: Copyright © DUNE Project contributors, see file LICENSE.md in module root
 # SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception
 
+# Link all test targets in this directory against Dune::Common
+link_libraries(Dune::Common)
+
 dune_add_test(SOURCES accessorstest.cc
-              LABELS quick
-              LINK_LIBRARIES Dune::Common)
+              LABELS quick)
 
 dune_add_test(SOURCES extentstest.cc
-              LABELS quick
-              LINK_LIBRARIES Dune::Common)
+              LABELS quick)
 
 dune_add_test(SOURCES mappingtest.cc
-              LABELS quick
-              LINK_LIBRARIES Dune::Common)
+              LABELS quick)
 
 dune_add_test(SOURCES mdspantest.cc
-              LABELS quick
-              LINK_LIBRARIES Dune::Common)
+              LABELS quick)
 
 dune_add_test(SOURCES mdarraytest.cc
-              LABELS quick
-              LINK_LIBRARIES Dune::Common)
+              LABELS quick)
 
 dune_add_test(SOURCES spantest.cc
-              LABELS quick
-              LINK_LIBRARIES Dune::Common)
\ No newline at end of file
+              LABELS quick)
\ No newline at end of file
diff --git a/dune/common/test/CMakeLists.txt b/dune/common/test/CMakeLists.txt
index 78a399832..b1769dc2b 100644
--- a/dune/common/test/CMakeLists.txt
+++ b/dune/common/test/CMakeLists.txt
@@ -3,25 +3,24 @@
 
 include(DuneInstance)
 
+# Link all test targets in this directory against Dune::Common
+link_libraries(Dune::Common)
+
 dune_add_test(SOURCES arithmetictestsuitetest.cc
-              LINK_LIBRARIES dunecommon
               LABELS quick)
 
 dune_add_test(SOURCES arraylisttest.cc
               LABELS quick)
 
 dune_add_test(SOURCES assertandreturntest.cc
-              LINK_LIBRARIES dunecommon
               LABELS quick)
 dune_add_test(NAME assertandreturntest_compiletime_fail
               SOURCES assertandreturntest.cc
-              LINK_LIBRARIES dunecommon
               COMPILE_DEFINITIONS "TEST_COMPILETIME_FAIL"
               EXPECT_COMPILE_FAIL
               LABELS quick)
 dune_add_test(NAME assertandreturntest_ndebug
               SOURCES assertandreturntest.cc
-              LINK_LIBRARIES dunecommon
               COMPILE_DEFINITIONS "TEST_NDEBUG"
               LABELS quick)
 
@@ -29,7 +28,6 @@ dune_add_test(SOURCES autocopytest.cc
               LABELS quick)
 
 dune_add_test(SOURCES bigunsignedinttest.cc
-              LINK_LIBRARIES dunecommon
               LABELS quick)
 
 dune_add_test(SOURCES bitsetvectortest.cc
@@ -37,19 +35,15 @@ dune_add_test(SOURCES bitsetvectortest.cc
 
 dune_add_test(SOURCES boundscheckingtest.cc
               COMPILE_DEFINITIONS DUNE_CHECK_BOUNDS=1
-              LINK_LIBRARIES dunecommon
               LABELS quick)
 dune_add_test(SOURCES boundscheckingmvtest.cc
               COMPILE_DEFINITIONS DUNE_CHECK_BOUNDS=1
-              LINK_LIBRARIES dunecommon
               LABELS quick)
 dune_add_test(SOURCES boundscheckingoptest.cc
               COMPILE_DEFINITIONS DUNE_CHECK_BOUNDS=1
-              LINK_LIBRARIES dunecommon
               LABELS quick)
 
 dune_add_test(SOURCES calloncetest.cc
-              LINK_LIBRARIES dunecommon
               LABELS quick)
 
 dune_add_test(SOURCES check_fvector_size.cc
@@ -69,32 +63,26 @@ dune_add_test(NAME check_fvector_size_fail2
 
 dune_add_test(NAME classnametest-demangled
               SOURCES classnametest.cc
-              LINK_LIBRARIES dunecommon
               LABELS quick)
 
 dune_add_test(NAME classnametest-fallback
               SOURCES classnametest.cc
-              LINK_LIBRARIES dunecommon
               COMPILE_DEFINITIONS DISABLE_CXA_DEMANGLE
               LABELS quick)
 
 dune_add_test(SOURCES concept.cc
-              LINK_LIBRARIES dunecommon
               LABELS quick)
 
 dune_add_test(SOURCES concepts.cc
-              LINK_LIBRARIES dunecommon
               LABELS quick)
 
 dune_add_test(SOURCES constexprifelsetest.cc
-              LINK_LIBRARIES dunecommon
               LABELS quick)
 
 dune_add_test(SOURCES copyableoptionaltest.cc
               LABELS quick)
 
 dune_add_test(SOURCES debugaligntest.cc
-              LINK_LIBRARIES dunecommon
               LABELS quick)
 
 # Generate files with instantiations, external declarations, and also the
@@ -112,73 +100,59 @@ dune_instance_end()
 list(FILTER DUNE_INSTANCE_GENERATED INCLUDE REGEX [[\.cc$]])
 dune_add_test(NAME debugalignsimdtest
               SOURCES ${DUNE_INSTANCE_GENERATED}
-              LINK_LIBRARIES dunecommon
               LABELS quick)
 
 dune_add_test(SOURCES densematrixassignmenttest.cc
-              LINK_LIBRARIES dunecommon
               LABELS quick)
 dune_add_test(NAME densematrixassignmenttest_fail0
               SOURCES densematrixassignmenttest.cc
-              LINK_LIBRARIES dunecommon
               COMPILE_DEFINITIONS "FAILURE0"
               EXPECT_COMPILE_FAIL
               LABELS quick)
 dune_add_test(NAME densematrixassignmenttest_fail1
               SOURCES densematrixassignmenttest.cc
-              LINK_LIBRARIES dunecommon
               COMPILE_DEFINITIONS "FAILURE1"
               EXPECT_COMPILE_FAIL
               LABELS quick)
 dune_add_test(NAME densematrixassignmenttest_fail2
               SOURCES densematrixassignmenttest.cc
-              LINK_LIBRARIES dunecommon
               COMPILE_DEFINITIONS "FAILURE2"
               EXPECT_COMPILE_FAIL
               LABELS quick)
 dune_add_test(NAME densematrixassignmenttest_fail3
               SOURCES densematrixassignmenttest.cc
-              LINK_LIBRARIES dunecommon
               COMPILE_DEFINITIONS "FAILURE3"
               EXPECT_COMPILE_FAIL
               LABELS quick)
 dune_add_test(NAME densematrixassignmenttest_fail4
               SOURCES densematrixassignmenttest.cc
-              LINK_LIBRARIES dunecommon
               COMPILE_DEFINITIONS "FAILURE4"
               EXPECT_COMPILE_FAIL
               LABELS quick)
 dune_add_test(NAME densematrixassignmenttest_fail5
               SOURCES densematrixassignmenttest.cc
-              LINK_LIBRARIES dunecommon
               COMPILE_DEFINITIONS "FAILURE5"
               EXPECT_COMPILE_FAIL
               LABELS quick)
 dune_add_test(NAME densematrixassignmenttest_fail6
               SOURCES densematrixassignmenttest.cc
-              LINK_LIBRARIES dunecommon
               COMPILE_DEFINITIONS "FAILURE6"
               EXPECT_COMPILE_FAIL
               LABELS quick)
 
 dune_add_test(SOURCES densevectorassignmenttest.cc
-              LINK_LIBRARIES dunecommon
               LABELS quick)
 
 dune_add_test(SOURCES diagonalmatrixtest.cc
-              LINK_LIBRARIES dunecommon
               LABELS quick)
 
 dune_add_test(SOURCES dynmatrixtest.cc
-              LINK_LIBRARIES dunecommon
               LABELS quick)
 
 dune_add_test(SOURCES dynvectortest.cc
-              LINK_LIBRARIES dunecommon
               LABELS quick)
 
 dune_add_test(SOURCES densevectortest.cc
-              LINK_LIBRARIES dunecommon
               LABELS quick)
 
 dune_add_test(SOURCES enumsettest.cc
@@ -188,16 +162,13 @@ dune_add_test(SOURCES filledarraytest.cc
               LABELS quick)
 
 dune_add_test(SOURCES fmatrixtest.cc
-              LINK_LIBRARIES dunecommon
               LABELS quick)
 add_dune_vc_flags(fmatrixtest)
 
 dune_add_test(SOURCES fvectortest.cc
-              LINK_LIBRARIES dunecommon
               LABELS quick)
 
 dune_add_test(SOURCES fvectorconversion1d.cc
-              LINK_LIBRARIES dunecommon
               LABELS quick)
 
 dune_add_test(SOURCES genericiterator_compile_fail.cc
@@ -205,7 +176,6 @@ dune_add_test(SOURCES genericiterator_compile_fail.cc
               LABELS quick)
 
 dune_add_test(SOURCES hybridutilitiestest.cc
-              LINK_LIBRARIES dunecommon
               LABELS quick)
 
 dune_add_test(SOURCES indexediteratortest.cc
@@ -218,7 +188,6 @@ dune_add_test(SOURCES integersequencetest.cc
               LABELS quick)
 
 dune_add_test(SOURCES iscallabletest.cc
-              LINK_LIBRARIES dunecommon
               LABELS quick)
 
 dune_add_test(SOURCES iteratorfacadetest2.cc
@@ -228,32 +197,26 @@ dune_add_test(SOURCES iteratorfacadetest.cc
               LABELS quick)
 
 dune_add_test(SOURCES lrutest.cc
-              LINK_LIBRARIES dunecommon
               LABELS quick)
 
-dune_add_test(SOURCES mathclassifierstest.cc
-              LINK_LIBRARIES dunecommon)
+dune_add_test(SOURCES mathclassifierstest.cc)
 
 dune_add_test(SOURCES metistest.cc
-              LINK_LIBRARIES dunecommon
               CMAKE_GUARD METIS_FOUND
               LABELS quick)
 add_dune_metis_flags(metistest)
 
 dune_add_test(SOURCES mpicommunicationtest.cc
-              LINK_LIBRARIES dunecommon
               MPI_RANKS 1 2 4 8
               TIMEOUT 300
               LABELS quick)
 
 dune_add_test(SOURCES mpiguardtest.cc
-              LINK_LIBRARIES dunecommon
               MPI_RANKS 1 2 4 8
               TIMEOUT 300
               LABELS quick)
 
 dune_add_test(SOURCES mpihelpertest.cc
-              LINK_LIBRARIES dunecommon
               MPI_RANKS 1 2 4 8
               TIMEOUT 300
               LABELS quick)
@@ -261,57 +224,45 @@ dune_add_test(SOURCES mpihelpertest.cc
 dune_add_test(NAME mpihelpertest2
               SOURCES mpihelpertest.cc
               COMPILE_DEFINITIONS MPIHELPER_PREINITIALIZE
-              LINK_LIBRARIES dunecommon
               MPI_RANKS 1 2 4 8
               TIMEOUT 300
               LABELS quick)
 
 dune_add_test(SOURCES overloadsettest.cc
-              LINK_LIBRARIES dunecommon
               LABELS quick)
 
 dune_add_test(NAME parameterizedobjecttest
               SOURCES parameterizedobjecttest.cc parameterizedobjectfactorysingleton.cc
-              LINK_LIBRARIES dunecommon
               LABELS quick)
 
 dune_add_test(SOURCES parametertreelocaletest.cc
-              LINK_LIBRARIES dunecommon
               LABELS quick)
 
 dune_add_test(SOURCES parametertreetest.cc
-              LINK_LIBRARIES dunecommon
               LABELS quick)
 
 dune_add_test(SOURCES pathtest.cc
-              LINK_LIBRARIES dunecommon
               LABELS quick)
 
 dune_add_test(SOURCES poolallocatortest.cc
               LABELS quick)
 
 dune_add_test(SOURCES powertest.cc
-              LINK_LIBRARIES dunecommon
               LABELS quick)
 
 dune_add_test(SOURCES quadmathtest.cc
-              LINK_LIBRARIES dunecommon
               CMAKE_GUARD HAVE_QUADMATH)
 
 dune_add_test(SOURCES rangeutilitiestest.cc
-              LINK_LIBRARIES dunecommon
               LABELS quick)
 
 dune_add_test(SOURCES referencehelpertest.cc
-              LINK_LIBRARIES dunecommon
               LABELS quick)
 
 dune_add_test(SOURCES reservedvectortest.cc
-              LINK_LIBRARIES dunecommon
               LABELS quick)
 
 dune_add_test(SOURCES scotchtest.cc
-              LINK_LIBRARIES dunecommon
               CMAKE_GUARD PTScotch_FOUND
               LABELS quick)
 
@@ -328,55 +279,46 @@ dune_add_test(SOURCES stdidentity.cc
               LABELS quick)
 
 dune_add_test(SOURCES stdchecktypes.cc
-              LINK_LIBRARIES dunecommon
               LABELS quick)
 
 dune_add_test(SOURCES streamoperatorstest.cc
               LABELS quick)
 
 dune_add_test(SOURCES streamtest.cc
-              LINK_LIBRARIES dunecommon
               LABELS quick)
 
 dune_add_test(SOURCES stringutilitytest.cc
-              LINK_LIBRARIES dunecommon
               LABELS quick)
 
 dune_add_test(SOURCES testdebugallocator.cc
-              LINK_LIBRARIES dunecommon
               LABELS quick)
 
 dune_add_test(NAME testdebugallocator_fail1
               SOURCES testdebugallocator.cc
-              LINK_LIBRARIES dunecommon
               COMPILE_DEFINITIONS "FAILURE1;EXPECTED_SIGNAL=SIGSEGV;EXPECTED_ALT_SIGNAL=SIGBUS"
               EXPECT_FAIL
               LABELS quick)
 
 dune_add_test(NAME testdebugallocator_fail2
               SOURCES testdebugallocator.cc
-              LINK_LIBRARIES dunecommon
               COMPILE_DEFINITIONS "FAILURE2;EXPECTED_SIGNAL=SIGABRT"
               EXPECT_FAIL
               LABELS quick)
 
 dune_add_test(NAME testdebugallocator_fail3
               SOURCES testdebugallocator.cc
-              LINK_LIBRARIES dunecommon
               COMPILE_DEFINITIONS "FAILURE3;EXPECTED_SIGNAL=SIGABRT"
               EXPECT_FAIL
               LABELS quick)
 
 dune_add_test(NAME testdebugallocator_fail4
               SOURCES testdebugallocator.cc
-              LINK_LIBRARIES dunecommon
               COMPILE_DEFINITIONS "FAILURE4;DEBUG_ALLOCATOR_KEEP=1;EXPECTED_SIGNAL=SIGSEGV;EXPECTED_ALT_SIGNAL=SIGBUS"
               EXPECT_FAIL
               LABELS quick)
 
 dune_add_test(NAME testdebugallocator_fail5
               SOURCES testdebugallocator.cc
-              LINK_LIBRARIES dunecommon
               COMPILE_DEFINITIONS "FAILURE5;EXPECTED_SIGNAL=SIGSEGV;EXPECTED_ALT_SIGNAL=SIGBUS"
               EXPECT_FAIL
               LABELS quick)
@@ -385,7 +327,6 @@ dune_add_test(SOURCES testfloatcmp.cc
               LABELS quick)
 
 dune_add_test(SOURCES transposetest.cc
-              LINK_LIBRARIES dunecommon
               LABELS quick)
 
 dune_add_test(SOURCES tupleutilitytest.cc
@@ -398,33 +339,27 @@ dune_add_test(SOURCES typeutilitytest.cc
               LABELS quick)
 
 dune_add_test(SOURCES typelisttest.cc
-              LINK_LIBRARIES dunecommon
               LABELS quick)
 
 dune_add_test(SOURCES utilitytest.cc
               LABELS quick)
 
 dune_add_test(SOURCES eigenvaluestest.cc
-              LINK_LIBRARIES dunecommon
               CMAKE_GUARD LAPACK_FOUND
               LABELS quick)
 
 dune_add_test(SOURCES versiontest.cc
-              LINK_LIBRARIES dunecommon
               LABELS quick)
 
 dune_add_test(SOURCES mathtest.cc
-              LINK_LIBRARIES dunecommon
               LABELS quick)
 
 dune_add_test(SOURCES vcexpectedimpltest.cc
-              LINK_LIBRARIES dunecommon
               LABELS quick
               CMAKE_GUARD Vc_FOUND)
 add_dune_vc_flags(vcexpectedimpltest)
 
-dune_add_test(SOURCES alignedallocatortest.cc
-              LINK_LIBRARIES dunecommon)
+dune_add_test(SOURCES alignedallocatortest.cc)
 
 install(
   FILES
-- 
GitLab