1 |
cmake_minimum_required(VERSION 3.14) |
2 |
project(LMDZE Fortran CXX) |
3 |
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}) |
4 |
|
5 |
find_path(netcdff_INCLUDE_DIR netcdf.mod) |
6 |
|
7 |
find_path(XIOS_INCLUDE_DIR xios.mod) |
8 |
find_library(XIOS_LIBRARY xios) |
9 |
|
10 |
find_package(NR_util REQUIRED CONFIG) |
11 |
find_package(Jumble REQUIRED CONFIG) |
12 |
find_package(Numer_Rec_95 REQUIRED CONFIG) |
13 |
find_package(NetCDF95 REQUIRED CONFIG) |
14 |
find_package(NetCDF REQUIRED) |
15 |
find_package(MPI REQUIRED COMPONENTS CXX) |
16 |
|
17 |
add_library(LMDZE_objects OBJECT dimensions.F90) |
18 |
|
19 |
set(CPP_IIM 16 CACHE STRING "iim, number of longitudes") |
20 |
set(CPP_JJM 12 CACHE STRING "jjm, number of latitudes") |
21 |
set(CPP_LLM 11 CACHE STRING "llm, number of vertical levels") |
22 |
|
23 |
message(STATUS "Set iim to ${CPP_IIM}, jjm to ${CPP_JJM}, llm to ${CPP_LLM}") |
24 |
|
25 |
target_compile_definitions(LMDZE_objects PRIVATE CPP_IIM=${CPP_IIM} |
26 |
CPP_JJM=${CPP_JJM} CPP_LLM=${CPP_LLM}) |
27 |
|
28 |
target_include_directories(LMDZE_objects PRIVATE ${netcdff_INCLUDE_DIR}) |
29 |
target_link_libraries(LMDZE_objects netcdf95 jumble numer_rec_95) |
30 |
|
31 |
foreach(my_dir dyn3d filtrez IOIPSL misc phylmd) |
32 |
include(${my_dir}/CMakeLists.txt) |
33 |
endforeach(my_dir) |
34 |
|
35 |
include(ConfigureCompilerFlags) |
36 |
include(TAGS) |