67 lines
2.1 KiB
CMake
67 lines
2.1 KiB
CMake
# INITIAL ATTEMPT OF USING CMAKE TO BUILD THE SPECTRAL SOLVER
|
|
# CMAKE SHOULD BE ABLE TO TAKE CARE OF THE DEPENDENCE BY ITSELF.
|
|
#
|
|
cmake_minimum_required (VERSION 3.1.0)
|
|
project (DAMASKSpectral Fortran)
|
|
|
|
|
|
# make sure that the default is a RELEASE
|
|
if (NOT CMAKE_BUILD_TYPE)
|
|
set (CMAKE_BUILD_TYPE RELEASE CACHE STRING
|
|
"Choose the type of build, options are: None Debug Release."
|
|
FORCE)
|
|
endif (NOT CMAKE_BUILD_TYPE)
|
|
|
|
|
|
# The version number.
|
|
set (DAMASKSpectral_VERSION_MAJOR 1)
|
|
set (DAMASKSpectral_VERSION_MINOR 0)
|
|
|
|
# Set up build directory
|
|
set (CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/build)
|
|
set (CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
|
|
set (CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
|
|
|
|
|
|
# setup modules
|
|
find_package(petsc)
|
|
find_package(hdf5)
|
|
|
|
# FFLAGS depend on the compiler
|
|
# need extra time to work on these
|
|
get_filename_component (Fortran_COMPILER_NAME ${CMAKE_Fortran_COMPILER} NAME)
|
|
|
|
if (Fortran_COMPILER_NAME MATCHES "gfortran.*")
|
|
# gfortran
|
|
set (CMAKE_Fortran_FLAGS_RELEASE "-funroll-all-loops -fno-f2c -O3")
|
|
set (CMAKE_Fortran_FLAGS_DEBUG "-fno-f2c -O0 -g")
|
|
elseif (Fortran_COMPILER_NAME MATCHES "ifort.*")
|
|
# ifort (untested)
|
|
set (CMAKE_Fortran_FLAGS_RELEASE "-f77rtl -O3")
|
|
set (CMAKE_Fortran_FLAGS_DEBUG "-f77rtl -O0 -g")
|
|
elseif (Fortran_COMPILER_NAME MATCHES "g77")
|
|
# g77
|
|
set (CMAKE_Fortran_FLAGS_RELEASE "-funroll-all-loops -fno-f2c -O3 -m32")
|
|
set (CMAKE_Fortran_FLAGS_DEBUG "-fno-f2c -O0 -g -m32")
|
|
else (Fortran_COMPILER_NAME MATCHES "gfortran.*")
|
|
message ("CMAKE_Fortran_COMPILER full path: " ${CMAKE_Fortran_COMPILER})
|
|
message ("Fortran compiler: " ${Fortran_COMPILER_NAME})
|
|
message ("No optimized Fortran compiler flags are known, we just try -O2...")
|
|
set (CMAKE_Fortran_FLAGS_RELEASE "-O2")
|
|
set (CMAKE_Fortran_FLAGS_DEBUG "-O0 -g")
|
|
endif (Fortran_COMPILER_NAME MATCHES "gfortran.*")
|
|
|
|
|
|
# ADD CODE(SOURCE) DIRECTORY
|
|
add_subdirectory(code)
|
|
|
|
|
|
# ADD TESTING CASES
|
|
add_test (SmokeTestRun
|
|
DAMASK_spectral.exe -g test/test1.geom -l test/test.load)
|
|
|
|
|
|
# Enable Dashboard scripting
|
|
# include (CTest)
|
|
# set (CTEST_PROJECT_NAME "DAMASK")
|