@@ -85,59 +85,85 @@ include_directories(
8585)
8686
8787# ExternalProject for HDF5
88- ExternalProject_Add(
89- hdf5_ext
90- URL https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.10/hdf5-1.10.1/src/hdf5-1.10.1.tar.gz
91- PREFIX ${CMAKE_SOURCE_DIR} /_deps/hdf5
92- CONFIGURE_COMMAND <SOURCE_DIR>/configure --prefix =${DEP_INSTALL_DIR} --enable-cxx --enable-fortran --enable-shared --with-pic CC=${CMAKE_C_COMPILER} CXX=${CMAKE_CXX_COMPILER} FC=${CMAKE_Fortran_COMPILER}
93- BUILD_COMMAND make -j${N_CORES}
94- INSTALL_COMMAND make install
95- UPDATE_COMMAND ""
96- BUILD_ALWAYS FALSE
97- DOWNLOAD_EXTRACT_TIMESTAMP TRUE
98- )
88+ find_library (HDF5_LIB NAMES hdf5 hdf5_serial HINTS ${DEP_INSTALL_DIR} /lib NO_DEFAULT_PATH)
89+ find_library (HDF5_HL_LIB NAMES hdf5_hl HINTS ${DEP_INSTALL_DIR} /lib NO_DEFAULT_PATH)
90+ if (NOT HDF5_LIB OR NOT HDF5_HL_LIB)
91+ ExternalProject_Add(
92+ hdf5_ext
93+ URL https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.10/hdf5-1.10.1/src/hdf5-1.10.1.tar.gz
94+ PREFIX ${CMAKE_SOURCE_DIR} /_deps/hdf5
95+ CONFIGURE_COMMAND <SOURCE_DIR>/configure --prefix =${DEP_INSTALL_DIR} --enable-cxx --enable-fortran --enable-shared --with-pic CC=${CMAKE_C_COMPILER} CXX=${CMAKE_CXX_COMPILER} FC=${CMAKE_Fortran_COMPILER}
96+ BUILD_COMMAND make -j${N_CORES}
97+ INSTALL_COMMAND make install
98+ UPDATE_COMMAND ""
99+ BUILD_ALWAYS FALSE
100+ DOWNLOAD_EXTRACT_TIMESTAMP TRUE
101+ )
102+ else ()
103+ message (STATUS "HDF5 found: ${HDF5_LIB} " )
104+ message (STATUS "HDF5 high-level library found: ${HDF5_HL_LIB} " )
105+ endif ()
99106
100107# ExternalProject for NetCDF-C (depends on HDF5)
101- ExternalProject_Add(
102- netcdf-c_ext
103- URL https://github.com/Unidata/netcdf-c/archive/v4.3.3.1.tar.gz
104- PREFIX ${CMAKE_SOURCE_DIR} /_deps/netcdf-c
105- CONFIGURE_COMMAND <SOURCE_DIR>/configure --prefix =${DEP_INSTALL_DIR} --enable-netcdf-4 --enable-shared --with-pic --disable-dap CC=${CMAKE_C_COMPILER} CXX=${CMAKE_CXX_COMPILER} FC=${CMAKE_Fortran_COMPILER} CPPFLAGS=-I${DEP_INSTALL_DIR} /include LDFLAGS=-L${DEP_INSTALL_DIR} /lib
106- BUILD_COMMAND make -j${N_CORES}
107- INSTALL_COMMAND make install
108- UPDATE_COMMAND ""
109- BUILD_ALWAYS FALSE
110- DEPENDS hdf5_ext
111- DOWNLOAD_EXTRACT_TIMESTAMP TRUE
112- )
108+ find_library (NETCDF_LIB NAMES netcdf HINTS ${DEP_INSTALL_DIR} /lib NO_DEFAULT_PATH)
109+ if (NOT NETCDF_LIB)
110+ ExternalProject_Add(
111+ netcdf-c_ext
112+ URL https://github.com/Unidata/netcdf-c/archive/v4.3.3.1.tar.gz
113+ PREFIX ${CMAKE_SOURCE_DIR} /_deps/netcdf-c
114+ CONFIGURE_COMMAND <SOURCE_DIR>/configure --prefix =${DEP_INSTALL_DIR} --enable-netcdf-4 --enable-shared --with-pic --disable-dap CC=${CMAKE_C_COMPILER} CXX=${CMAKE_CXX_COMPILER} FC=${CMAKE_Fortran_COMPILER} CPPFLAGS=-I${DEP_INSTALL_DIR} /include LDFLAGS=-L${DEP_INSTALL_DIR} /lib
115+ BUILD_COMMAND make -j${N_CORES}
116+ INSTALL_COMMAND make install
117+ UPDATE_COMMAND ""
118+ BUILD_ALWAYS FALSE
119+ DEPENDS hdf5_ext
120+ DOWNLOAD_EXTRACT_TIMESTAMP TRUE
121+ )
122+ else ()
123+ message (STATUS "NetCDF-C found in ${DEP_INSTALL_DIR} /lib" )
124+ endif ()
113125
114126# ExternalProject for NetCDF-CXX (depends on NetCDF-C)
115- ExternalProject_Add(
116- netcdf-cxx4_ext
117- URL https://github.com/Unidata/netcdf-cxx4/archive/v4.3.0.tar.gz
118- PREFIX ${CMAKE_SOURCE_DIR} /_deps/netcdf-cxx4
119- CONFIGURE_COMMAND <SOURCE_DIR>/configure --prefix =${DEP_INSTALL_DIR} --enable-shared --with-pic CC=${CMAKE_C_COMPILER} CXX=${CMAKE_CXX_COMPILER} CPPFLAGS=-I${DEP_INSTALL_DIR} /include LDFLAGS=-L${DEP_INSTALL_DIR} /lib
120- BUILD_COMMAND make -j${N_CORES}
121- INSTALL_COMMAND make install
122- UPDATE_COMMAND ""
123- BUILD_ALWAYS FALSE
124- DEPENDS netcdf-c_ext
125- DOWNLOAD_EXTRACT_TIMESTAMP TRUE
126- )
127+ find_library (NETCDF_CXX_LIB NAMES netcdf_c++4 HINTS ${DEP_INSTALL_DIR} /lib NO_DEFAULT_PATH)
128+ if (NOT NETCDF_CXX_LIB)
129+ ExternalProject_Add(
130+ netcdf-cxx4_ext
131+ URL https://github.com/Unidata/netcdf-cxx4/archive/v4.3.0.tar.gz
132+ PREFIX ${CMAKE_SOURCE_DIR} /_deps/netcdf-cxx4
133+ CONFIGURE_COMMAND <SOURCE_DIR>/configure --prefix =${DEP_INSTALL_DIR} --enable-shared --with-pic CC=${CMAKE_C_COMPILER} CXX=${CMAKE_CXX_COMPILER} CPPFLAGS=-I${DEP_INSTALL_DIR} /include LDFLAGS=-L${DEP_INSTALL_DIR} /lib
134+ BUILD_COMMAND make -j${N_CORES}
135+ INSTALL_COMMAND make install
136+ UPDATE_COMMAND ""
137+ BUILD_ALWAYS FALSE
138+ DEPENDS netcdf-c_ext
139+ DOWNLOAD_EXTRACT_TIMESTAMP TRUE
140+ )
141+ else ()
142+ message (STATUS "NetCDF-C++ found in ${DEP_INSTALL_DIR} /lib" )
143+ endif ()
144+
127145
128146# ExternalProject for Boost
129- ExternalProject_Add(
130- boost_ext
131- URL https://archives.boost.io/release/1.87.0/source /boost_1_87_0.tar.gz
132- PREFIX ${CMAKE_SOURCE_DIR} /_deps/boost
133- CONFIGURE_COMMAND <SOURCE_DIR>/bootstrap.sh --prefix =${DEP_INSTALL_DIR}
134- BUILD_COMMAND <SOURCE_DIR>/b2 -j${BOOST_BUILD_CORES} install --prefix =${DEP_INSTALL_DIR}
135- BUILD_IN_SOURCE TRUE
136- INSTALL_COMMAND ""
137- UPDATE_COMMAND ""
138- BUILD_ALWAYS FALSE
139- DOWNLOAD_EXTRACT_TIMESTAMP TRUE
140- )
147+ find_library (BOOST_SYSTEM_LIB NAMES boost_system HINTS ${DEP_INSTALL_DIR} /lib NO_DEFAULT_PATH)
148+ find_library (BOOST_FILESYSTEM_LIB NAMES boost_filesystem HINTS ${DEP_INSTALL_DIR} /lib NO_DEFAULT_PATH)
149+ if (NOT BOOST_SYSTEM_LIB OR NOT BOOST_FILESYSTEM_LIB)
150+ ExternalProject_Add(
151+ boost_ext
152+ URL https://archives.boost.io/release/1.87.0/source /boost_1_87_0.tar.gz
153+ PREFIX ${CMAKE_SOURCE_DIR} /_deps/boost
154+ CONFIGURE_COMMAND <SOURCE_DIR>/bootstrap.sh --prefix =${DEP_INSTALL_DIR}
155+ BUILD_COMMAND <SOURCE_DIR>/b2 -j${BOOST_BUILD_CORES} install --prefix =${DEP_INSTALL_DIR}
156+ BUILD_IN_SOURCE TRUE
157+ INSTALL_COMMAND ""
158+ UPDATE_COMMAND ""
159+ BUILD_ALWAYS FALSE
160+ DOWNLOAD_EXTRACT_TIMESTAMP TRUE
161+ )
162+ else ()
163+ message (STATUS "Boost found in ${DEP_INSTALL_DIR} /lib" )
164+ set (Boost_INCLUDE_DIRS ${DEP_INSTALL_DIR} /include )
165+ set (Boost_LIBRARIES ${BOOST_SYSTEM_LIB} ${BOOST_FILESYSTEM_LIB} )
166+ endif ()
141167
142168# Add rte-rrtmgp-cpp as a subdirectory
143169add_subdirectory (external/rte-rrtmgp-cpp)
@@ -190,7 +216,7 @@ target_link_libraries(vvm2d PRIVATE
190216)
191217
192218# Add dependencies
193- add_dependencies (vvm2d hdf5_ext netcdf-c_ext netcdf-cxx4_ext boost_ext)
219+ # add_dependencies(vvm2d hdf5_ext netcdf-c_ext netcdf-cxx4_ext boost_ext)
194220
195221# Set runtime library paths (-rpath)
196222set_target_properties (vvm2d PROPERTIES
0 commit comments