LBPM/CMakeLists.txt
2014-07-16 16:49:09 -04:00

122 lines
3.2 KiB
CMake
Executable File

# Set some CMake properties
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
CMAKE_POLICY(SET CMP0011 OLD)
CMAKE_POLICY(SET CMP0014 OLD)
MESSAGE("====================")
MESSAGE("Configuring LBPM-WIA")
MESSAGE("====================")
# Set the project name
PROJECT( LBPM-WIA )
# Check if we are only compiling docs
INCLUDE( ${CMAKE_CURRENT_SOURCE_DIR}/cmake/macros.cmake )
INCLUDE( ${CMAKE_CURRENT_SOURCE_DIR}/cmake/libraries.cmake )
CHECK_ENABLE_FLAG( ONLY_BUILD_DOCS 0 )
# Set testing paramaters
SET( DROP_METHOD "http" )
SET( DROP_SITE "oblivion.engr.colostate.edu" )
SET( DROP_LOCATION "/CDash/submit.php?project=LBPM-WIA" )
SET( TRIGGER_SITE "" )
SET( DROP_SITE_CDASH TRUE )
ENABLE_TESTING()
INCLUDE( CTest )
# Set some common paths
SET( LBPM_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR} )
SET( LBPM_BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR} )
IF( PREFIX )
SET( LBPM_INSTALL_DIR ${PREFIX} )
ELSEIF( NOT LBPM_INSTALL_DIR )
SET( LBPM_INSTALL_DIR ${CMAKE_CURRENT_BINARY_DIR} )
ENDIF()
SET( CMAKE_MODULE_PATH ${LBPM_SOURCE_DIR} ${LBPM_SOURCE_DIR}/cmake )
# Create custom targets for build-test, check, and distclean
ADD_CUSTOM_TARGET( doc )
ADD_CUSTOM_TARGET( latex_docs )
ADD_CUSTOM_TARGET( build-test )
ADD_CUSTOM_TARGET( check COMMAND make test )
ADD_DISTCLEAN()
# Check the compile mode and compile flags
IF ( NOT ONLY_BUILD_DOCS )
CONFIGURE_SYSTEM()
ENDIF()
# Add some directories to include
INCLUDE_DIRECTORIES( ${LBPM_INSTALL_DIR}/include )
# Set doxygen info
CHECK_ENABLE_FLAG( USE_DOXYGEN 1 )
CHECK_ENABLE_FLAG( USE_LATEX 1 )
FILE( MAKE_DIRECTORY "${LBPM_INSTALL_DIR}/doc" )
IF ( USE_DOXYGEN )
SET( DOXYFILE_IN ${LBPM_SOURCE_DIR}/doxygen/Doxyfile.in)
SET( DOXY_HEADER_FILE ${LBPM_SOURCE_DIR}/doxygen/html/header.html )
SET( DOXY_FOOTER_FILE ${LBPM_SOURCE_DIR}/doxygen/html/footer.html )
SET( DOXYFILE_OUTPUT_DIR ${LBPM_BUILD_DIR}/doc/ )
SET( DOXYFILE_SRC_HTML_DIR ${LBPM_SOURCE_DIR}/doxygen/html )
SET( DOXYFILE_SOURCE_DIR ${LBPM_SOURCE_DIR} )
SET( REL_PACKAGE_HTML "" )
SET( DOXYGEN_MACROS "" )
MESSAGE("DOXYGEN_MACROS = ${DOXYGEN_MACROS}")
INCLUDE( ${LBPM_SOURCE_DIR}/cmake/UseDoxygen.cmake )
SET(DOXYFILE_LATEX "YES")
IF ( DOXYGEN_FOUND )
ADD_DEPENDENCIES( doxygen latex_docs )
ADD_DEPENDENCIES( doc latex_docs doxygen )
ELSE()
SET( USE_DOXYGEN 0 )
ENDIF()
ENDIF()
# Configure external packages
IF ( NOT ONLY_BUILD_DOCS )
CONFIGURE_MPI() # MPI must be before other libraries
CONFIGURE_CUDA()
CONFIGURE_MIC()
CONFIGURE_LBPM()
CONFIGURE_LINE_COVERAGE()
ENDIF()
# Configure internal libraries (order matters)
SET( LBPM_LIBS lbpm-wia )
# Add the src directories
IF ( NOT ONLY_BUILD_DOCS )
BEGIN_PACKAGE_CONFIG( lbpm-wia )
ADD_PACKAGE_SUBDIRECTORY( common )
IF ( USE_CUDA )
ADD_PACKAGE_SUBDIRECTORY( gpu )
ELSE()
ADD_PACKAGE_SUBDIRECTORY( cpu )
ENDIF()
INSTALL_LBPM_TARGET( lbpm-wia )
ADD_SUBDIRECTORY( tests )
ADD_SUBDIRECTORY( example )
ENDIF()
# Create the visit plugin
IF ( USE_VISIT )
INCLUDE( ${CMAKE_CURRENT_SOURCE_DIR}/cmake/FindVisIt.cmake )
VISIT_PLUGIN( visit LBM )
ENDIF()