adding install target in CMake

This commit is contained in:
Chen Zhang 2016-03-04 11:18:38 -05:00
parent 9cb9de9c8a
commit 0e34d0468c
2 changed files with 46 additions and 26 deletions

View File

@ -4,17 +4,28 @@
cmake_minimum_required (VERSION 3.1.0 FATAL_ERROR) cmake_minimum_required (VERSION 3.1.0 FATAL_ERROR)
project (DAMASK Fortran) project (DAMASK Fortran)
# The version number. # THE VERSION NUMBER.
set (DAMASK_VERSION_MAJOR 1) set (DAMASK_VERSION_MAJOR 1)
set (DAMASK_VERSION_MINOR ${DAMASK_V}) set (DAMASK_VERSION_MINOR ${DAMASK_V})
# PETSC and HDF5 is required # PETSC IS REQUIRED
if (NOT DEFINED PETSC_DIR) if (NOT DEFINED PETSC_DIR)
message (FATAL_ERROR "PETSC_DIR is not found!") message (FATAL_ERROR "PETSC_DIR is not found!")
endif (NOT DEFINED PETSC_DIR) endif (NOT DEFINED PETSC_DIR)
if (NOT DEFINED HDF5_DIR) # RECOMMEND USING HDF5 FROM PETSC
message (FATAL_ERROR "HDF5_DIR is not found!" ) if (DEFINED HDF5_DIR)
endif (NOT DEFINED HDF5_DIR) message ("\n***Using HDF5 library found at ${HDF5_DIR}\n")
else(DEFINED HDF5_DIR)
message ("\n***Using HDF5 library from PETSc\n" )
endif (DEFINED HDF5_DIR)
# Setting installation prefix
if (NOT DEFINED DAMASK_INSTALL)
set (CMAKE_INSTALL_PREFIX "${PROJECT_SOURCE_DIR}/bin")
elseif(DEFINED DAMASK_INSTALL)
set (CMAKE_INSTALL_PREFIX "${DAMASK_INSTALL}")
endif(NOT DEFINED DAMASK_INSTALL)
message("\n***The binary will be installed at\n${CMAKE_INSTALL_PREFIX}\n")
# DAMASK DRIVER SELECTION # DAMASK DRIVER SELECTION
set (SPECTRAL OFF) set (SPECTRAL OFF)
@ -109,14 +120,14 @@ message("***Found PETSC_EXTERNAL_LIB:\n${PETSC_EXTERNAL_LIB}\n")
message("***Found PETSC_LINKER:\n${PETSC_LINKER}\n") message("***Found PETSC_LINKER:\n${PETSC_LINKER}\n")
message("***Found PETSC_MPIEXEC:\n${MPIEXEC}\n") message("***Found PETSC_MPIEXEC:\n${MPIEXEC}\n")
# set include directories # SET INCLUDE DIRECTORIES (SNEAK IT IN WITH PETSC)
if (DEFINED HDF5_DIR)
set (DAMASK_INCLUDE_FLAGS "${PETSC_INCLUDES} -I${HDF5_DIR}/include" )
set (PETSC_EXTERNAL_LIB "${PETSC_EXTERNAL_LIB} -L${HDF5_DIR}/lib")
endif (DEFINED HDF5_DIR)
set (DAMASK_INCLUDE_FLAGS "${DAMASK_INCLUDE_FLAGS} ${PETSC_INCLUDES}" ) set (DAMASK_INCLUDE_FLAGS "${DAMASK_INCLUDE_FLAGS} ${PETSC_INCLUDES}" )
set (DAMASK_INCLUDE_FLAGS "${DAMASK_INCLUDE_FLAGS} -I${PROJECT_SOURCE_DIR}/lib") set (DAMASK_INCLUDE_FLAGS "${DAMASK_INCLUDE_FLAGS} -I${PROJECT_SOURCE_DIR}/lib")
#set (DAMASK_INCLUDE_FLAGS "${DAMASK_INCLUDE_FLAGS} -I${HDF5_DIR}/include -lm" )
# set link libraries from PETSc
set (DAMASK_LINK_FLAGS "${DAMASK_LINK_FLAGS} ${PETSC_LINKER}" )
set (DAMASK_LINK_FLAGS "${DAMASK_LINK_FLAGS} ${PETSC_EXTERNAL_LIB}")
#set (DAMASK_LINK_FLAGS "${DAMASK_LINK_FLAGS} -L${HDF5_DIR}/lib" )
## ##
# set compile and debug flags # set compile and debug flags
@ -440,6 +451,8 @@ message("***LINK FLAGS:\n${CMAKE_EXE_LINKER_FLAGS_RELEASE}\n")
## ##
# ADD CODE DIRECTORY # ADD CODE DIRECTORY
add_subdirectory(code) add_subdirectory(code)
INSTALL(PROGRAMS ${PROJECT_BINARY_DIR}/code/DAMASKSpectral.exe
DESTINATION ${CMAKE_INSTALL_PREFIX})
## ##
# ADD TESTING CASES # ADD TESTING CASES

View File

@ -30,11 +30,18 @@ cd build_spectral
# OPENMP | [ON/OFF] # OPENMP | [ON/OFF]
# OPTIMIZATION | [OFF,DEFENSIVE,AGGRESSIVE,ULTRA] # OPTIMIZATION | [OFF,DEFENSIVE,AGGRESSIVE,ULTRA]
# DAMASK_DRIVER | [SPECTRAL, FEM] # DAMASK_DRIVER | [SPECTRAL, FEM]
# DAMASK_INSTALL | Directory to install binary output
cmake -D PETSC_DIR=${PETSC_DIR} \ cmake -D PETSC_DIR=${PETSC_DIR} \
-D HDF5_DIR=${HDF5_DIR} \
-D DAMASK_V=${DAMASKVERSION} \ -D DAMASK_V=${DAMASKVERSION} \
-D CMAKE_BUILD_TYPE=RELEASE \ -D CMAKE_BUILD_TYPE=RELEASE \
-D OPENMP=ON \ -D OPENMP=ON \
-D OPTIMIZATION=DEFENSIVE \ -D OPTIMIZATION=DEFENSIVE \
-D DAMASK_DRIVER=SPECTRAL \ -D DAMASK_DRIVER=SPECTRAL \
-D DAMASK_INSTALL=${HOME}/bin \
../.. ../..
echo
echo "Please move to the build directory using"
echo " cd build/build_spectral"
echo "Using the following command to build DAMASK spectral solver"
echo " make clean all install"