1- # cmake version, project name, language
2- cmake_minimum_required (VERSION 3.22 FATAL_ERROR )
1+ # CMake version, project name, language
2+ cmake_minimum_required (VERSION 3.20 )
33project (neural-fortran Fortran)
44
5- # set output paths for modules, archives, and executables
5+ # Set output paths for modules, archives, and executables
66set (CMAKE_Fortran_MODULE_DIRECTORY ${PROJECT_BINARY_DIR} /include )
77set (CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR} /lib)
88set (CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR} /lib)
99set (CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR} /bin)
1010
11- # if build type not specified, default to release
11+ # If build type not specified, default to release
1212if (NOT CMAKE_BUILD_TYPE )
1313 set (CMAKE_BUILD_TYPE "release" )
1414endif ()
@@ -20,17 +20,21 @@ else()
2020endif ()
2121
2222find_package (HDF5 COMPONENTS Fortran HL)
23+ include_directories (${HDF5_INCLUDE_DIRS} )
2324
2425include (FetchContent)
2526
2627FetchContent_Declare(
2728 h5fortran
2829 GIT_REPOSITORY https://github.com/geospace-code/h5fortran
29- GIT_TAG 3b1867bb542fae9213aded0015103b8418e53919
30+ GIT_TAG v4.6.3
3031)
3132
3233FetchContent_MakeAvailable(h5fortran)
3334
35+ file (MAKE_DIRECTORY ${h5fortran_BINARY_DIR} /include )
36+ include_directories (${h5fortran_BINARY_DIR} /include )
37+
3438# compiler flags for gfortran
3539if (CMAKE_Fortran_COMPILER_ID MATCHES GNU)
3640
@@ -82,6 +86,8 @@ add_library(neural
8286 src/nf/nf_base_layer_submodule.f90
8387 src/nf/nf_conv2d_layer.f90
8488 src/nf/nf_conv2d_layer_submodule.f90
89+ src/nf/nf_datasets.f90
90+ src/nf/nf_datasets_submodule.f90
8591 src/nf/nf_datasets_mnist.f90
8692 src/nf/nf_datasets_mnist_submodule.f90
8793 src/nf/nf_dense_layer.f90
@@ -92,6 +98,8 @@ add_library(neural
9298 src/nf/nf_input1d_layer_submodule.f90
9399 src/nf/nf_input3d_layer.f90
94100 src/nf/nf_input3d_layer_submodule.f90
101+ src/nf/nf_keras.f90
102+ src/nf/nf_keras_submodule.f90
95103 src/nf/nf_layer_constructors.f90
96104 src/nf/nf_layer_constructors_submodule.f90
97105 src/nf/nf_layer.f90
@@ -113,20 +121,18 @@ add_library(neural
113121 src/nf/io/nf_io_hdf5_submodule.f90
114122)
115123
116- target_include_directories (neural PUBLIC ${h5fortran_BUILD_DIR} /include )
117-
118124# Remove leading or trailing whitespace
119125string (REGEX REPLACE "^ | $" "" LIBS "${LIBS} " )
120126
121127# tests
122128enable_testing ()
123129foreach (execid input1d_layer input3d_layer dense_layer conv2d_layer maxpool2d_layer flatten_layer dense_network dense_network_from_keras conv2d_network io_hdf5 keras_read_model)
124130 add_executable (test_${execid} test /test_${execid} .f90)
125- target_link_libraries (test_${execid} neural h5fortran ${LIBS} )
131+ target_link_libraries (test_${execid} PRIVATE neural h5fortran:: h5fortran ${LIBS} )
126132 add_test (test_${execid} bin/test_${execid} )
127133endforeach ()
128134
129135foreach (execid cnn mnist mnist_from_keras simple sine)
130136 add_executable (${execid} example/${execid} .f90)
131- target_link_libraries (${execid} neural h5fortran ${LIBS} )
137+ target_link_libraries (${execid} PRIVATE neural h5fortran:: h5fortran ${LIBS} )
132138endforeach ()
0 commit comments