3 get_filename_component( FOLDER_COMPILE_TARGET ${CMAKE_CURRENT_SOURCE_DIR} NAME)
6 ${FOLDER_COMPILE_TARGET}
10 # Do this first to simplify steps later
11 set_target_properties(
12 ${FOLDER_COMPILE_TARGET}
14 Fortran_MODULE_DIRECTORY ${CMAKE_INSTALL_PREFIX}/${FOLDER_COMPILE_TARGET}
15 EXPORT_PROPERTIES Fortran_MODULE_DIRECTORY
19 target_link_libraries(
20 ${FOLDER_COMPILE_TARGET}
22 $<$<BOOL:${USE_OPENMP}>:$<TARGET_NAME_IF_EXISTS:OpenMP::OpenMP_Fortran>>
23 $<$<BOOL:${USE_MPI}>:$<TARGET_NAME_IF_EXISTS:MPI::MPI_Fortran>>
27 target_include_directories(
28 ${FOLDER_COMPILE_TARGET}
30 $<TARGET_PROPERTY:${FOLDER_COMPILE_TARGET},Fortran_MODULE_DIRECTORY>
31 $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/external/ioapi_share>
32 $<INSTALL_INTERFACE:include/external/ioapi_share>
34 ${CMAKE_CURRENT_SOURCE_DIR}
39 get_target_property ( FOLDER_COMPILE_TARGET_INCLUDES ${FOLDER_COMPILE_TARGET} INCLUDE_DIRECTORIES )
40 wrf_c_preproc_fortran(
41 TARGET_NAME ${FOLDER_COMPILE_TARGET}_c_preproc_wrf_io
42 OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR}/preproc/
44 INCLUDES ${FOLDER_COMPILE_TARGET_INCLUDES}
45 DEFINITIONS ${PROJECT_COMPILE_DEFINITIONS}
50 wrf_m4_preproc_fortran(
51 TARGET_NAME ${FOLDER_COMPILE_TARGET}_m4_preproc_wrf_io
52 OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR}/preproc/
55 SOURCES ${CMAKE_CURRENT_BINARY_DIR}/preproc/wrf_io.f90
56 DEPENDENCIES ${FOLDER_COMPILE_TARGET}_c_preproc_wrf_io
57 TARGET_SCOPE ${FOLDER_COMPILE_TARGET}
61 add_dependencies( ${FOLDER_COMPILE_TARGET} ${FOLDER_COMPILE_TARGET}_m4_preproc_wrf_io )
64 ${FOLDER_COMPILE_TARGET}
66 ${CMAKE_CURRENT_BINARY_DIR}/preproc/m4_preproc_wrf_io.f90
67 module_wrfsi_static.F90
72 set( DIFFWRF_TARGET diffwrf_nc )
76 ${PROJECT_SOURCE_DIR}/frame/clog.c
77 ${PROJECT_SOURCE_DIR}/frame/module_wrf_error.F
78 ${PROJECT_SOURCE_DIR}/frame/wrf_debug.F
81 target_link_libraries(
84 ${FOLDER_COMPILE_TARGET}
86 set_target_properties(
89 # Just dump everything in here
90 Fortran_MODULE_DIRECTORY ${CMAKE_INSTALL_PREFIX}/modules/${DIFFWRF_TARGET}
96 TARGETS ${FOLDER_COMPILE_TARGET} ${DIFFWRF_TARGET}
97 EXPORT ${EXPORT_NAME}Targets
98 RUNTIME DESTINATION bin/
99 ARCHIVE DESTINATION lib/
100 LIBRARY DESTINATION lib/