From 0f27a0e78a5d899d0a85b7f79489e6aca97a62e3 Mon Sep 17 00:00:00 2001 From: David Minton Date: Wed, 27 Sep 2023 15:29:45 -0400 Subject: [PATCH] Trying to get the dependencies loaded in the windows build --- CMakeLists.txt | 12 ++++++++++-- .../windows/netcdf-c-cacheinit-windows.cmake | 2 +- .../windows/netcdf-fortran-cacheinit-windows.cmake | 5 +++-- .../windows/swiftest-cacheinint-windows.cmake | 7 +++++++ cmake/Modules/FindNETCDF_Fortran.cmake | 5 +++-- 5 files changed, 24 insertions(+), 7 deletions(-) create mode 100644 buildscripts/windows/swiftest-cacheinint-windows.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index ee14a5b37..4ce195ac5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -67,12 +67,20 @@ IF(PROJECT_SOURCE_DIR STREQUAL PROJECT_BINARY_DIR) ENDIF() FIND_PACKAGE(NETCDF_Fortran REQUIRED) -FIND_PACKAGE(HDF5 COMPONENTS C HL REQUIRED) +IF (MSVC) + FIND_PACKAGE(HDF5 NAMES hdf5 COMPONENTS C HL REQUIRED CONFIG) + MESSAGE(STATUS "HDF5_FOUND: ${HDF5_FOUND}") + MESSAGE(STATUS "HDF5_VERSION: ${HDF5_VERSION}") + MESSAGE(STATUS "HDF5_LIBRARIES: ${HDF5_LIBRARIES}") + MESSAGE(STATUS "HDF5_INCLUDE_DIRS: ${HDF5_INCLUDE_DIRS}") +ELSE () + FIND_PACKAGE(HDF5 COMPONENTS C HL REQUIRED) +ENDIF () # Ensure scikit-build modules FIND_PACKAGE(Python COMPONENTS Interpreter Development.Module REQUIRED) -# Define some directories that are important to the build + SET(SRC "${CMAKE_SOURCE_DIR}/src") SET(PY "${CMAKE_SOURCE_DIR}/swiftest") diff --git a/buildscripts/windows/netcdf-c-cacheinit-windows.cmake b/buildscripts/windows/netcdf-c-cacheinit-windows.cmake index 679c40b3c..34f405d91 100644 --- a/buildscripts/windows/netcdf-c-cacheinit-windows.cmake +++ b/buildscripts/windows/netcdf-c-cacheinit-windows.cmake @@ -33,7 +33,7 @@ set (BUILD_SHARED_LIBS OFF CACHE BOOL "Build with shared libraries" FORCE) set (HDF5_DIR "C:/Program Files/HDF_Group/HDF5/1.14.2/cmake" CACHE PATH "Location of HDF5 cmake files" FORCE) set (HDF5_ROOT "C:/Program Files/HDF_Group/HDF5/1.14.2" CACHE PATH "Location of HDF5" FORCE) -SET(ZLIB_LIBRARY "C:/Program Files (x86)/zlib/zlib.lib" CACHE FILEPATH "ZLIB library file" FORCE) +SET(ZLIB_LIBRARY "C:/Program Files (x86)/zlib/lib/zlib.lib" CACHE FILEPATH "ZLIB library file" FORCE) SET(ZLIB_INCLUDE_DIR "C:/Program Files (x86)/zlib/include" CACHE PATH "ZLIB include directory" FORCE) # Set build type can be: empty, Debug, Release, RelWithDebInfo or MinSizeRel diff --git a/buildscripts/windows/netcdf-fortran-cacheinit-windows.cmake b/buildscripts/windows/netcdf-fortran-cacheinit-windows.cmake index 9c3fca435..1d1f807b6 100644 --- a/buildscripts/windows/netcdf-fortran-cacheinit-windows.cmake +++ b/buildscripts/windows/netcdf-fortran-cacheinit-windows.cmake @@ -1,5 +1,6 @@ -SET(netCDF_INCLUDE_DIR "C:/Program Files/netCDF 4.9.2/include" CACHE PATH "Path to NetCDF-C include directory" FORCE) -SET(netCDF_LIBRARIES "C:/Program Files/netCDF 4.9.2/lib/netcdf.lib" CACHE FILEPATH "Location of NetCDF-C library file" FORCE) +SET(netCDF_DIR "C:/Program Files/netCDF/lib/cmake/netCDF" CACHE PATH "Location of NetCDF-C cmake config files" FORCE) +SET(HDF5_DIR "C:/Program Files/HDF5_Group/HDF5/1.14.2/cmake" CACHE PATH "Location of HDF5 cmake config files" FORCE) +SET(HDF5_ROOT "C:/Program Files/HDF5_Group/HDF5/1.14.2" CACHE PATH "Location of HDF5" FORCE) SET(BUILD_SHARED_LIBS OFF CACHE BOOL "Use shared libraries" FORCE) SET(CMAKE_INSTALL_PREFIX "C:/Program Files/NC4F" CACHE PATH "Installation location" FORCE) SET(CMAKE_BUILD_TYPE "Debug" CACHE STRING "Compile build type" FORCE) \ No newline at end of file diff --git a/buildscripts/windows/swiftest-cacheinint-windows.cmake b/buildscripts/windows/swiftest-cacheinint-windows.cmake new file mode 100644 index 000000000..c5c42aa64 --- /dev/null +++ b/buildscripts/windows/swiftest-cacheinint-windows.cmake @@ -0,0 +1,7 @@ +SET(CMAKE_BUILD_TYPE "Release" CACHE STRING "Build type" FORCE) +SET(USE_OPENMP ON CACHE BOOL "Use OpenMP" FORCE) +SET(USE_SIMD OFF CACHE BOOL "Use SIMD instructions" FORCE) +SET(netCDF-Fortran_DIR "C:/Program Files/NC4F/lib/cmake/netCDF" CACHE PATH "Location of NetCDF-Fortran cmake config files" FORCE) +SET(HDF5_DIR "C:/Program Files/HDF5_Group/HDF5/1.14.2/cmake" CACHE PATH "Location of HDF5 cmake config files" FORCE) +SET(HDF5_ROOT "C:/Program Files/HDF5_Group/HDF5/1.14.2" CACHE PATH "Location of HDF5" FORCE) +SET(HDF5_USE_STATIC_LIBRARIES ON CACHE BOOL "Use static HDF5 libraries" FORCE) \ No newline at end of file diff --git a/cmake/Modules/FindNETCDF_Fortran.cmake b/cmake/Modules/FindNETCDF_Fortran.cmake index 2b996a27f..ee56789a5 100644 --- a/cmake/Modules/FindNETCDF_Fortran.cmake +++ b/cmake/Modules/FindNETCDF_Fortran.cmake @@ -128,7 +128,7 @@ ELSE () SET(NETCDF "netcdf.lib") SET(HDF5 "libhdf5.lib") SET(HDF5_HL "libhdf5_hl.lib") - SET(ZLIB "zlibstatic.lib") + SET(ZLIB "zlib.lib") ELSE () SET(NETCDFF "libnetcdff.a") SET(NETCDF "libnetcdf.a") @@ -151,7 +151,7 @@ ELSE () REQUIRED ) ADD_LIBRARY(netCDF::netcdff UNKNOWN IMPORTED PUBLIC) - IF (CMAKE_SYSTEM_NAME STREQUAL "Windows") + IF (CMAKE_SYSTEM_NAME STREQUAL "Windows" AND BUILD_SHARED_LIBS) # Get the DLL added in FIND_FILE(NFDLL NAMES "netcdff.dll" @@ -179,5 +179,6 @@ ELSE () MESSAGE(STATUS "NetCDF-Fortran include directory: ${NETCDF_FORTRAN_INCLUDE_DIR}") ENDIF () + SET(NETCDF_FORTRAN_FOUND TRUE) MARK_AS_ADVANCED(NETCDF_FORTRAN_LIBRARY NETCDF_FORTRAN_INCLUDE_DIR) \ No newline at end of file