131 lines
3.4 KiB
CMake
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"))
|
|
|
|
|
|
|