Skip to content

Commit 53f4d2c

Browse files
committed
Fix object dependencies of build artifacts.
1 parent 7e6fd4f commit 53f4d2c

File tree

3 files changed

+35
-27
lines changed

3 files changed

+35
-27
lines changed

src/tests/integration/pde_solvers/coarrayBurgers/CMakeLists.txt

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,25 @@ else()
1919
endif()
2020

2121
set(CMAKE_Fortran_COMPILER "${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_BINDIR}/caf")
22-
add_executable(coarray_burgers_pde
23-
main.F90
24-
global_field.F90
25-
local_field.F90
22+
add_library(cbp_base STATIC
23+
${config_directory}/compiler_capabilities.txt
2624
${library_directory}/ForTrilinos_assertion_utility.F90
2725
${library_directory}/object_interface.F90
2826
${library_directory}/co_object_interface.F90
2927
)
30-
add_dependencies(coarray_burgers_pde caf_mpi_static)
31-
target_include_directories(coarray_burgers_pde PRIVATE ${config_directory})
28+
add_library(cbp_local STATIC
29+
${config_directory}/compiler_capabilities.txt
30+
local_field.F90
31+
)
32+
add_executable(coarray_burgers_pde
33+
${config_directory}/compiler_capabilities.txt
34+
global_field.F90
35+
main.F90
36+
)
37+
target_link_libraries(cbp_local PUBLIC cbp_base caf_mpi_static)
38+
target_link_libraries(coarray_burgers_pde PRIVATE cbp_local)
39+
set_target_properties(cbp_base cbp_local coarray_burgers_pde
40+
PROPERTIES
41+
Fortran_MODULE_DIRECTORY "${config_directory}"
42+
INCLUDE_DIRECTORIES "${CMAKE_BINARY_DIR};${config_directory}"
43+
)
Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
set(CMAKE_Fortran_COMPILER "${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_BINDIR}/caf")
2-
add_library(local_field OBJECT local_field.f90)
3-
add_library(global_field OBJECT global_field.f90)
4-
add_dependencies(local_field caf_mpi_static)
5-
add_dependencies(global_field local_field caf_mpi_static)
2+
add_library(local_field STATIC local_field.f90)
3+
add_library(global_field STATIC global_field.f90)
64
add_executable(co_heat
75
main.f90
8-
$<TARGET_OBJECTS:local_field>
9-
$<TARGET_OBJECTS:global_field>
106
)
11-
add_dependencies(co_heat caf_mpi_static)
7+
target_link_libraries(global_field PUBLIC local_field caf_mpi_static)
8+
target_link_libraries(co_heat PRIVATE global_field)
9+
set_target_properties(local_field global_field co_heat
10+
PROPERTIES
11+
INCLUDE_DIRECTORIES "${CMAKE_BINARY_DIR}"
12+
Fortran_MODULE_DIRECTORY "${CMAKE_BINARY_DIR}"
13+
)

src/tests/utilities/CMakeLists.txt

Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -31,27 +31,21 @@ if ("${CMAKE_Fortran_COMPILER_ID}" MATCHES "GNU" )
3131
set(CMAKE_REQUIRED_FLAGS ${OLD_REQUIRED_FLAGS})
3232
endif()
3333

34-
add_library( oc_test_interfaces OBJECT
34+
add_library( oc_test_interfaces STATIC
3535
opencoarrays_object_interface.f90
3636
oc_assertions_interface.F90
3737
)
3838
add_library( opencoarrays_test_utilities STATIC
39-
oc_assertions_implementation.F90
4039
$<TARGET_OBJECTS:oc_test_interfaces>
40+
oc_assertions_implementation.F90
4141
)
42-
set_target_properties(opencoarrays_test_utilities
43-
PROPERTIES
44-
Fortran_MODULE_DIRECTORY "${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_INCLUDEDIR}/${mod_dir_tail}")
45-
set_target_properties(oc_test_interfaces
42+
target_link_libraries(opencoarrays_test_utilities PUBLIC oc_test_interfaces)
43+
set_target_properties(oc_test_interfaces opencoarrays_test_utilities
4644
PROPERTIES
47-
Fortran_MODULE_DIRECTORY "${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_INCLUDEDIR}/${mod_dir_tail}")
48-
49-
target_compile_options(oc_test_interfaces
50-
PUBLIC
51-
"-fcoarray=lib")
52-
target_compile_options(opencoarrays_test_utilities
53-
PUBLIC
54-
"-fcoarray=lib")
45+
Fortran_MODULE_DIRECTORY "${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_INCLUDEDIR}/${mod_dir_tail}"
46+
INCLUDE_DIRECTORIES "${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_INCLUDEDIR}/${mod_dir_tail}"
47+
COMPILE_OPTIONS "-fcoarray=lib"
48+
)
5549

5650
if(HAVE_ERROR_STOP_IN_PURE)
5751
target_compile_definitions(oc_test_interfaces

0 commit comments

Comments
 (0)