summaryrefslogtreecommitdiffstats
path: root/fortran/testpar/CMakeLists.txt
blob: 4d3a3309a7f7434a3a31f0396911465eefa1703e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
cmake_minimum_required (VERSION 3.18)
project (HDF5_FORTRAN_TESTPAR C Fortran)

#-----------------------------------------------------------------------------
# Setup include Directories
#-----------------------------------------------------------------------------
set (TESTPAR_INCLUDES ${MPI_Fortran_INCLUDE_DIRS} ${HDF5_F90_BINARY_DIR} ${HDF5_F90_SRC_DIR}/src)
if (NOT BUILD_SHARED_LIBS)
  set (TESTPAR_INCLUDES ${TESTPAR_INCLUDES} ${CMAKE_Fortran_MODULE_DIRECTORY}/static)
else ()
  set (TESTPAR_INCLUDES ${TESTPAR_INCLUDES} ${CMAKE_Fortran_MODULE_DIRECTORY}/shared)
endif ()

#-----------------------------------------------------------------------------
# Add Tests
#-----------------------------------------------------------------------------

#-- Adding test for parallel_test
add_executable (parallel_test
    ptest.F90
    hyper.F90
    mdset.F90
    mpi_param.F90
    multidsetrw.F90
)
target_include_directories (parallel_test
    PRIVATE ${TESTPAR_INCLUDES}
)
target_compile_options(parallel_test
    PRIVATE
        "${HDF5_CMAKE_Fortran_FLAGS}"
        "$<$<STREQUAL:x${CMAKE_Fortran_SIMULATE_ID},xMSVC>:${WIN_COMPILE_FLAGS}>"
)
if (NOT BUILD_SHARED_LIBS)
  target_link_libraries (parallel_test
      PRIVATE
          ${HDF5_F90_TEST_LIB_TARGET} ${HDF5_F90_LIB_TARGET} ${HDF5_LIB_TARGET} ${LINK_Fortran_LIBS}
          "$<$<STREQUAL:x${CMAKE_Fortran_SIMULATE_ID},xMSVC>:ws2_32.lib>"
  )
  set_target_properties (parallel_test PROPERTIES
      FOLDER test/fortran
      LINKER_LANGUAGE Fortran
      Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY}/static
  )
else ()
  target_link_libraries (parallel_test
      PRIVATE
          ${HDF5_F90_TEST_LIBSH_TARGET} ${HDF5_F90_LIBSH_TARGET} ${HDF5_LIBSH_TARGET} ${LINK_Fortran_LIBS}
          "$<$<STREQUAL:x${CMAKE_Fortran_SIMULATE_ID},xMSVC>:ws2_32.lib>"
  )
  set_target_properties (parallel_test PROPERTIES
      FOLDER test/fortran
      LINKER_LANGUAGE Fortran
      Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY}/shared
  )
endif ()

if(MSVC)
  set_property(TARGET parallel_test PROPERTY LINK_FLAGS "/SUBSYSTEM:CONSOLE ${WIN_LINK_FLAGS}")
endif()

#-- Adding test for subfiling_test
add_executable (subfiling_test
    subfiling.F90
)
target_include_directories (subfiling_test
    PRIVATE ${TESTPAR_INCLUDES}
)
target_compile_options(subfiling_test
    PRIVATE
        "${HDF5_CMAKE_Fortran_FLAGS}"
        "$<$<STREQUAL:x${CMAKE_Fortran_SIMULATE_ID},xMSVC>:${WIN_COMPILE_FLAGS}>"
)
if (NOT BUILD_SHARED_LIBS)
  target_link_libraries (subfiling_test
      PRIVATE
          ${HDF5_F90_TEST_LIB_TARGET} ${HDF5_F90_LIB_TARGET} ${HDF5_LIB_TARGET} ${LINK_Fortran_LIBS}
          "$<$<STREQUAL:x${CMAKE_Fortran_SIMULATE_ID},xMSVC>:ws2_32.lib>"
  )
  set_target_properties (subfiling_test PROPERTIES
      FOLDER test/fortran
      LINKER_LANGUAGE Fortran
      Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY}/static
  )
else ()
  target_link_libraries (subfiling_test
      PRIVATE
          ${HDF5_F90_TEST_LIBSH_TARGET} ${HDF5_F90_LIBSH_TARGET} ${HDF5_LIBSH_TARGET} ${LINK_Fortran_LIBS}
          "$<$<STREQUAL:x${CMAKE_Fortran_SIMULATE_ID},xMSVC>:ws2_32.lib>"
  )
  set_target_properties (subfiling_test PROPERTIES
      FOLDER test/fortran
      LINKER_LANGUAGE Fortran
      Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY}/shared
  )
endif ()

if(MSVC)
  set_property(TARGET subfiling_test PROPERTY LINK_FLAGS "/SUBSYSTEM:CONSOLE ${WIN_LINK_FLAGS}")
endif()

#-- Adding test for async_test
add_executable (async_test
    async.F90
)
target_include_directories (async_test
    PRIVATE ${TESTPAR_INCLUDES}
)
target_compile_options(async_test
    PRIVATE
        "${HDF5_CMAKE_Fortran_FLAGS}"
        "$<$<STREQUAL:x${CMAKE_Fortran_SIMULATE_ID},xMSVC>:${WIN_COMPILE_FLAGS}>"
)
if (NOT BUILD_SHARED_LIBS)
  target_link_libraries (async_test
      PRIVATE
          ${HDF5_F90_TEST_LIB_TARGET} ${HDF5_F90_LIB_TARGET} ${HDF5_LIB_TARGET} ${LINK_Fortran_LIBS}
          "$<$<STREQUAL:x${CMAKE_Fortran_SIMULATE_ID},xMSVC>:ws2_32.lib>"
  )
  set_target_properties (async_test PROPERTIES
      FOLDER test/fortran
      LINKER_LANGUAGE Fortran
      Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY}/static
  )
else ()
  target_link_libraries (async_test
      PRIVATE
          ${HDF5_F90_TEST_LIBSH_TARGET} ${HDF5_F90_LIBSH_TARGET} ${HDF5_LIBSH_TARGET} ${LINK_Fortran_LIBS}
          "$<$<STREQUAL:x${CMAKE_Fortran_SIMULATE_ID},xMSVC>:ws2_32.lib>"
  )
  set_target_properties (async_test PROPERTIES
      FOLDER test/fortran
      LINKER_LANGUAGE Fortran
      Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY}/shared
  )
endif ()

if(MSVC)
  set_property(TARGET async_test PROPERTY LINK_FLAGS "/SUBSYSTEM:CONSOLE ${WIN_LINK_FLAGS}")
endif()

if (HDF5_TEST_FORTRAN AND HDF5_TEST_PARALLEL)
  include (CMakeTests.cmake)
endif ()