diff --git a/CMakeLists.txt b/CMakeLists.txt index 558c93fab..8e646a706 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -16,7 +16,7 @@ CMAKE_MINIMUM_REQUIRED(VERSION 3.20.1) # Get version stored in text file FILE(READ "version.txt" VERSION) -PROJECT(Swiftest VERSION ${VERSION} LANGUAGES Fortran) +PROJECT(swiftest VERSION ${VERSION} LANGUAGES Fortran) INCLUDE(CTest) @@ -58,15 +58,14 @@ INCLUDE_DIRECTORIES($ENV{NETCDF_FORTRAN_HOME}/include;$ENV{NETCDF_HOME}/include) # Define the actual files and folders that make up the build ############################################################ -# Define the executable name -SET(SWIFTEST_DRIVER swiftest_driver) + # Define some directories SET(SRC ${CMAKE_SOURCE_DIR}/src) SET(LIB ${CMAKE_SOURCE_DIR}/lib) SET(BIN ${CMAKE_SOURCE_DIR}/bin) SET(MOD ${CMAKE_SOURCE_DIR}/include) -SET(TEST ${CMAKE_SOURCE_DIR}/test) +#SET(TEST ${CMAKE_SOURCE_DIR}/test) SET(PY ${CMAKE_SOURCE_DIR}/python/swiftest) FUNCTION(REPLACE_VERSION IN_FILE LANGUAGE) @@ -106,9 +105,9 @@ SET(CMAKE_Fortran_MODULE_DIRECTORY ${MOD}) # The source for the SWIFTEST binary and have it placed in the bin folder ADD_SUBDIRECTORY(${SRC} ${BIN}) -# Set up test directory -ENABLE_TESTING() -ADD_SUBDIRECTORY(${TEST}) +# # Set up test directory +# ENABLE_TESTING() +# ADD_SUBDIRECTORY(${TEST}) # Add a distclean target to the Makefile ADD_CUSTOM_TARGET(distclean diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 2899ae49f..b2725e909 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -80,7 +80,7 @@ SET(FAST_MATH_FILES ${SRC}/symba/symba_util.f90 ${SRC}/walltime/walltime_implementations.f90 ${SRC}/whm/whm_util.f90 - ${SRC}/swiftest/swiftest_driver.f90 + ) SET(COARRAY_FILES @@ -92,47 +92,43 @@ SET(COARRAY_FILES ${SRC}/rmvs/rmvs_coarray.f90 ) -IF(USE_COARRAY) - set(SWIFTEST_src ${COARRAY_FILES} ${FAST_MATH_FILES} ${STRICT_MATH_FILES}) -ELSE() - set(SWIFTEST_src ${FAST_MATH_FILES} ${STRICT_MATH_FILES}) -ENDIF(USE_COARRAY) +SET(DRIVER_src ${SRC}/swiftest/swiftest_driver.f90) -# Define the executable in terms of the source files -ADD_EXECUTABLE(${SWIFTEST_DRIVER} ${SWIFTEST_src}) +# Combine all source files (includ) +set(SWIFTEST_src ${FAST_MATH_FILES} ${STRICT_MATH_FILES}) +IF(USE_COARRAY) + set(SWIFTEST_src ${SWIFTEST_src} ${COARRAY_FILES} ) +ENDIF () # Turn preprocessor on for all files -SET_SOURCE_FILES_PROPERTIES(${SWIFTEST_src} PROPERTIES Fortran_PREPROCESS ON) +SET_SOURCE_FILES_PROPERTIES(${SWIFTEST_src} ${DRIVER_src} PROPERTIES Fortran_PREPROCESS ON) + +# Create a library from the source files, except the driver +ADD_LIBRARY(swiftest ${SWIFTEST_src}) + +# Define the executable name +SET(SWIFTEST_DRIVER swiftest_driver) +ADD_EXECUTABLE(${SWIFTEST_DRIVER} ${DRIVER_src}) ##################################################### # Add the needed libraries and special compiler flags ##################################################### -TARGET_LINK_LIBRARIES(${SWIFTEST_DRIVER} PRIVATE ${NETCDF_FORTRAN_LIBRARIES} ${NETCDF_LIBRARIES} $ENV{LIBS}) +TARGET_LINK_LIBRARIES(${SWIFTEST_DRIVER} PRIVATE swiftest ${NETCDF_FORTRAN_LIBRARIES} ${NETCDF_LIBRARIES} $ENV{LIBS}) IF(USE_OPENMP) - SET_PROPERTY(TARGET ${SWIFTEST_DRIVER} APPEND_STRING PROPERTY COMPILE_FLAGS "${OpenMP_Fortran_FLAGS} ") - SET_PROPERTY(TARGET ${SWIFTEST_DRIVER} APPEND_STRING PROPERTY LINK_FLAGS "${OpenMP_Fortran_FLAGS} ") + SET_PROPERTY(TARGET swiftest ${SWIFTEST_DRIVER} APPEND_STRING PROPERTY COMPILE_FLAGS "${OpenMP_Fortran_FLAGS} ") + SET_PROPERTY(TARGET swiftest ${SWIFTEST_DRIVER} APPEND_STRING PROPERTY LINK_FLAGS "${OpenMP_Fortran_FLAGS} ") ENDIF(USE_OPENMP) IF(USE_COARRAY) + TARGET_COMPILE_DEFINITIONS(swiftest PRIVATE -DCOARRAY) TARGET_COMPILE_DEFINITIONS(${SWIFTEST_DRIVER} PRIVATE -DCOARRAY) - SET_PROPERTY(TARGET ${SWIFTEST_DRIVER} APPEND_STRING PROPERTY COMPILE_FLAGS "${Coarray_Fortran_FLAGS} ") - SET_PROPERTY(TARGET ${SWIFTEST_DRIVER} APPEND_STRING PROPERTY LINK_FLAGS "${Coarray_Fortran_FLAGS} ") + SET_PROPERTY(TARGET swiftest ${SWIFTEST_DRIVER} APPEND_STRING PROPERTY COMPILE_FLAGS "${Coarray_Fortran_FLAGS} ") + SET_PROPERTY(TARGET swiftest ${SWIFTEST_DRIVER} APPEND_STRING PROPERTY LINK_FLAGS "${Coarray_Fortran_FLAGS} ") ENDIF(USE_COARRAY) -##################################### -# Tell how to install this executable -##################################### - -IF(WIN32) - SET(CMAKE_INSTALL_PREFIX "C:\\Program Files") -ELSE() - SET(CMAKE_INSTALL_PREFIX /usr/local) -ENDIF(WIN32) -INSTALL(TARGETS ${SWIFTEST_DRIVER} RUNTIME DESTINATION bin) - #Set strict vs fast math flags STRING(TOUPPER "${CMAKE_BUILD_TYPE}" BT) @@ -169,3 +165,19 @@ end program TestDoConcurrentLoc ENDIF (USE_OPENMP) +##################################### +# Tell how to install this executable +##################################### +IF(WIN32) + SET(CMAKE_INSTALL_PREFIX "C:\\Program Files") +ELSE() + SET(CMAKE_INSTALL_PREFIX /usr/local) +ENDIF(WIN32) +INSTALL(TARGETS swiftest ${SWIFTEST_DRIVER} + LIBRARY DESTINATION ${LIB} + ARCHIVE DESTINATION ${LIB} + RUNTIME DESTINATION ${BIN} + ) + + +