Skip to content
Merged
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 23 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,7 @@ set(camp_SOURCES
sub_models/sub_model_UNIFAC.c
sub_models/sub_model_UNIFAC.F90
sub_models/sub_model_ZSR_aerosol_water.F90
sub_models/sub_model_ZSR_aerosol_water.c
sub_models/sub_model_ZSR_aerosol_water.c
)
add_prefix(gitmodules/camp/src/ camp_SOURCES)

Expand Down Expand Up @@ -328,6 +328,8 @@ add_prefix(sundials_ SUNDIALS_items)
### CAMP ###########################################################################################

add_library(camplib STATIC ${camp_SOURCES} ${json_fortran_SOURCES})
target_compile_options(camplib PRIVATE $<$<COMPILE_LANGUAGE:C>:-std=c99>)
target_compile_definitions(camplib PRIVATE $<$<COMPILE_LANGUAGE:C>:__bool_true_false_are_defined>)
target_compile_definitions(camplib PRIVATE CAMP_USE_JSON="1")
target_compile_definitions(camplib PRIVATE CAMP_USE_SUNDIALS="1")
target_include_directories(camplib PRIVATE
Expand All @@ -353,9 +355,15 @@ set(HDF5_BUILD_TOOLS OFF)
set(HDF5_BUILD_EXAMPLES OFF)
set(HDF5_ENABLE_Z_LIB_SUPPORT OFF)
set(HDF5_ENABLE_SZIP_SUPPORT OFF)
set(HDF5_ENABLE_NONSTANDARD_FEATURE_FLOAT16 OFF)

add_subdirectory(${CMAKE_SOURCE_DIR}/gitmodules/hdf5)

if (MINGW)
# https://github.com/HDFGroup/hdf5/issues/5885
target_compile_definitions(hdf5-static PRIVATE _GNU_SOURCE)
endif()

foreach(file ${hdf5_GENERATED_HEADERS})
execute_process(
COMMAND ${PYTHON_EXECUTABLE} "-c" "import re;open(1,'wb').write(re.sub(b'\\r',b'',open(0,'rb').read()))"
Expand Down Expand Up @@ -437,6 +445,20 @@ target_compile_definitions(netcdf_clib PRIVATE
USE_NETCDF4
USE_HDF5
)
if (MINGW)
file(WRITE "${CMAKE_BINARY_DIR}/fix_mingw_wstat64.h" "
#pragma once
#include <sys/stat.h>
#ifdef _WIN64
# undef _wstat64
# define _wstat64(path, buf) _wstat64((path), (struct _stat64*)(buf))
#endif
")
target_compile_options(netcdf_clib PRIVATE
-include${CMAKE_BINARY_DIR}/fix_mingw_wstat64.h
)
endif()

target_compile_options(netcdf_clib PRIVATE
$<$<C_COMPILER_ID:GNU>:-Wno-unused-result -Wno-pointer-to-int-cast -Wno-int-to-pointer-cast>
$<$<C_COMPILER_ID:AppleClang>:-Wno-pointer-to-int-cast -Wno-int-to-void-pointer-cast>
Expand Down
Loading