Files
DKS/src/CMakeLists.txt
2016-10-10 14:49:32 +02:00

131 lines
3.4 KiB
CMake

CMAKE_MINIMUM_REQUIRED (VERSION 2.8)
SET (DKS_SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR})
MACRO (ADD_SOURCES )
FILE (RELATIVE_PATH _relPath "${DKS_SRC_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}")
FOREACH (_src ${ARGN})
IF (_relPath)
LIST (APPEND DKS_SRCS "${_relPath}/${_src}")
ELSE ()
LIST (APPEND DKS_SRCS "${_src}")
ENDIF ()
ENDFOREACH ()
IF (_relPath)
# propagate SRCS to parent directory
SET (DKS_SRCS ${DKS_SRCS} PARENT_SCOPE)
ENDIF ()
ENDMACRO ()
MACRO (ADD_HEADERS )
FILE (RELATIVE_PATH _relPath "${DKS_SRC_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}")
FOREACH (_hdr ${ARGN})
IF (_relPath)
LIST (APPEND DKS_HDRS "${_relPath}/${_hdr}")
ELSE ()
LIST (APPEND DKS_HDRS "${_hdr}")
ENDIF ()
ENDFOREACH ()
IF (_relPath)
# propagate HDRS to parent directory
SET (DKS_HDRS ${DKS_HDRS} PARENT_SCOPE)
ENDIF ()
ENDMACRO ()
SET (DKS_BASEDIR_HDRS
DKSBase.h
DKSDefinitions.h
)
SET (DKS_BASEDIR_SRCS
DKSBase.cpp
)
IF (USE_CUDA OR USE_OPENCL)
SET (DKS_BASEDIR_HDRS
${DKS_BASEDIR_HDRS}
DKSBaseMuSR.h
)
SET (DKS_BASEDIR_SRCS
${DKS_BASEDIR_SRCS}
DKSBaseMuSR.cpp
)
ENDIF (USE_CUDA OR USE_OPENCL)
IF (USE_CUDA)
SET (DKS_BASEDIR_HDRS
${DKS_BASEDIR_HDRS}
DKSImageReconstruction.h
)
SET (DKS_BASEDIR_SRCS
${DKS_BASEDIR_SRCS}
DKSImageReconstruction.cpp
)
ENDIF (USE_CUDA)
ADD_HEADERS (${DKS_BASEDIR_HDRS})
ADD_SOURCES (${DKS_BASEDIR_SRCS})
MESSAGE (STATUS "HEADERS: ${DKS_BASEDIR_HDRS}")
MESSAGE (STATUS "SOURCES: ${DKS_BASEDIR_SRCS}")
#add only those source files that will be used
IF (USE_OPENCL)
MESSAGE (STATUS "Add OpenCL source files")
ADD_SUBDIRECTORY (OpenCL)
ENDIF (USE_OPENCL)
IF (USE_CUDA)
MESSAGE (STATUS "Add CUDA source files")
ADD_SUBDIRECTORY (CUDA)
ENDIF (USE_CUDA)
IF (USE_MIC)
MESSAGE (STATUS "Add MIC source files")
ADD_SUBDIRECTORY (MIC)
ENDIF (USE_MIC)
ADD_SUBDIRECTORY (Utility)
ADD_SUBDIRECTORY (AutoTuning)
ADD_SUBDIRECTORY (Algorithms)
IF (USE_CUDA)
CUDA_ADD_LIBRARY(dks ${DKS_SRCS})
CUDA_ADD_LIBRARY(dksshared SHARED ${DKS_SRCS})
IF (USE_UQTK)
TARGET_LINK_LIBRARIES(dks cudadevrt lreg UQTk quad uqtktools cvode-2.6.0 dsfmt lbfgs uqtklapack uqtkslatec uqtkblas gfortran)
TARGET_LINK_LIBRARIES(dksshared cudadevrt lreg UQTk quad uqtktools cvode-2.6.0 dsfmt lbfgs uqtklapack uqtkslatec uqtkblas gfortran)
ELSE (USE_UQTK)
TARGET_LINK_LIBRARIES(dks cudadevrt)
TARGET_LINK_LIBRARIES(dksshared cudadevrt)
ENDIF (USE_UQTK)
ELSE (USE_CUDA)
MESSAGE (STATUS "DKS srcs: ${DKS_SRCS}")
ADD_LIBRARY(dks ${DKS_SRCS})
ADD_LIBRARY(dksshared SHARED ${DKS_SRCS})
IF (USE_UQTK)
TARGET_LINK_LIBRARIES(dks lreg UQTk quad uqtktools cvode-2.6.0 dsfmt lbfgs uqtklapack uqtkslatec uqtkblas gfortran)
TARGET_LINK_LIBRARIES(dksshared lreg UQTk quad uqtktools cvode-2.6.0 dsfmt lbfgs uqtklapack uqtkslatec uqtkblas gfortran)
ELSE (USE_UQTK)
TARGET_LINK_LIBRARIES(dks)
TARGET_LINK_LIBRARIES(dksshared)
ENDIF(USE_UQTK)
ENDIF (USE_CUDA)
INSTALL(TARGETS dks DESTINATION lib)
INSTALL(TARGETS dksshared DESTINATION lib)
INSTALL(FILES ${DKS_BASEDIR_HDRS} DESTINATION include)
#IF (USE_MIC AND (COMPILER_NAME STREQUAL "icpc" OR COMPILER_NAME STREQUAL "mpiicpc"))
# INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/libdksMIC.a DESTINATION build/lib)
#ENDIF (USE_MIC AND (COMPILER_NAME STREQUAL "icpc" OR COMPILER_NAME STREQUAL "mpiicpc"))