diff --git a/CMakeLists.txt b/CMakeLists.txt index a281be488eea5ef299dcb329e6cf038b9c9d0bce..21fe045e2364bc125e8f97805e18a47c76797df3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,10 +3,12 @@ cmake_minimum_required(VERSION 3.0) option(INCLUDE_CUDA "GPU build in mode" OFF) option(INCLUDE_CXX "CXX build in mode" OFF) option(BUILD_DOC "Build documentation" OFF) +option(SFX_CHECK_NAN "Build documentation" OFF) -if(BUILD_DOC) +project(INMCM_sfx) +enable_language(Fortran) -endif(BUILD_DOC) +if(BUILD_DOC) find_package(Doxygen) if (DOXYGEN_FOUND) set(DOXYGEN_IN ../doxygen/config) # doxygen config file @@ -18,8 +20,11 @@ endif(BUILD_DOC) else() message("Doxygen need to be installed to generate the doxygen documentation") endif (DOXYGEN_FOUND) -project(INMCM_sfx) -enable_language(Fortran) +endif(BUILD_DOC) + +if (SFX_CHECK_NAN) + add_definitions(-DSFX_CHECK_NAN) +endif () if(INCLUDE_CXX) set(RUN_MACRO -DINCLUDE_CXX) @@ -52,7 +57,7 @@ set(SOURCES_F srcF/FCWrapper.F90 ) -set(HEADERS_F +set(HEADERS_F includeF/sfx_def.fi ) @@ -83,16 +88,16 @@ if(INCLUDE_CUDA) endif(INCLUDE_CUDA) if(INCLUDE_CXX OR INCLUDE_CUDA) - set(MEMPROC_SOURCES_CXX + set(MEMPROC_SOURCES_CXX srcCXX/MemoryProcessing.cpp ) - set(MEMPROC_HEADERS_CXX + set(MEMPROC_HEADERS_CXX includeCXX/MemoryProcessing.h includeCXX/TemplateParameters.h ) if(INCLUDE_CUDA) - set(MEMPROC_SOURCES_CU + set(MEMPROC_SOURCES_CU srcCU/MemoryProcessing.cu ) set(MEMPROC_HEADERS_CU @@ -106,4 +111,11 @@ set(SOURCES ${MEMPROC_HEADERS_CU} ${MEMPROC_SOURCES_CU} ${MEMPROC_HEADERS_CXX} $ set(CMAKE_Fortran_FLAGS " -cpp ") add_executable(drag ${SOURCES}) add_definitions(${RUN_MACRO}) -set_property(TARGET drag PROPERTY LINKER_LANGUAGE Fortran) \ No newline at end of file +set_property(TARGET drag PROPERTY LINKER_LANGUAGE Fortran) + +#copy data on post build +add_custom_command( + TARGET drag POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy_directory + ${CMAKE_SOURCE_DIR}/data + ${CMAKE_CURRENT_BINARY_DIR}/data) \ No newline at end of file