Merge branch 'master' of github.com:JamesEMcClure/LBPM-WIA
This commit is contained in:
commit
94a04cbaf7
@ -57,7 +57,7 @@ ADD_CUSTOM_TARGET( doc )
|
||||
ADD_CUSTOM_TARGET( latex_docs )
|
||||
ADD_CUSTOM_TARGET( build-test )
|
||||
ADD_CUSTOM_TARGET( check COMMAND make test )
|
||||
ADD_DISTCLEAN()
|
||||
ADD_DISTCLEAN( tests liblbpm-wia.* cpu gpu example common visit IO )
|
||||
|
||||
|
||||
# Check the compile mode and compile flags
|
||||
|
@ -1,5 +1,5 @@
|
||||
# Create a shared_ptr.h file in the include directory that contains
|
||||
# a shared_ptr class (hopefully Tdef to a compiler basic)
|
||||
# a shared_ptr class (hopefully typedef to a compiler basic)
|
||||
# Arguements:
|
||||
# INSTALL_DIR - Directory to install shared_ptr.h
|
||||
# NAMESPACE - Namespace to contain the shared_ptr class (may be empty)
|
||||
@ -33,7 +33,9 @@ FUNCTION( CONFIGURE_SHARED_PTR INSTALL_DIR NAMESPACE )
|
||||
}
|
||||
"
|
||||
TR1_MEMORY_TR1_SHARED_PTR )
|
||||
SET( CMAKE_REQUIRED_INCLUDES "${BOOST_INCLUDE}" )
|
||||
GET_DIRECTORY_PROPERTY( dirs INCLUDE_DIRECTORIES )
|
||||
SET( CMAKE_REQUIRED_FLAGS "${CMAKE_CXX_FLAGS}" )
|
||||
SET( CMAKE_REQUIRED_INCLUDES ${dirs} "${BOOST_INCLUDE}" )
|
||||
CHECK_CXX_SOURCE_COMPILES(
|
||||
" #include \"boost/shared_ptr.hpp\"
|
||||
namespace ${NAMESPACE} { using boost::shared_ptr; }
|
||||
@ -53,7 +55,7 @@ FUNCTION( CONFIGURE_SHARED_PTR INSTALL_DIR NAMESPACE )
|
||||
}
|
||||
"
|
||||
DUMMY_SHARED_PTR )
|
||||
IF ( BOOST_SHARED_PTR )
|
||||
IF ( BOOST_SHARED_PTR )
|
||||
FILE(WRITE "${CMAKE_CURRENT_BINARY_DIR}/tmp/shared_ptr.h" "#include \"boost/shared_ptr.hpp\"\n")
|
||||
FILE(APPEND "${CMAKE_CURRENT_BINARY_DIR}/tmp/shared_ptr.h" "#include \"boost/weak_ptr.hpp\"\n")
|
||||
FILE(APPEND "${CMAKE_CURRENT_BINARY_DIR}/tmp/shared_ptr.h" "#include \"boost/enable_shared_from_this.hpp\"\n")
|
||||
|
@ -2,10 +2,10 @@ INCLUDE( "${CMAKE_CURRENT_SOURCE_DIR}/cmake/Find_TIMER.cmake" )
|
||||
|
||||
|
||||
MACRO( CONFIGURE_LINE_COVERAGE )
|
||||
SET ( COVERAGE_LIBS )
|
||||
SET( COVERAGE_LIBS )
|
||||
IF ( ENABLE_GCOV )
|
||||
ADD_DEFINITIONS ( -fprofile-arcs -ftest-coverage )
|
||||
SET ( COVERAGE_LIBS -lgcov -fprofile-arcs )
|
||||
ADD_DEFINITIONS( -fprofile-arcs -ftest-coverage )
|
||||
SET( COVERAGE_LIBS -lgcov -fprofile-arcs )
|
||||
ENDIF ()
|
||||
ENDMACRO()
|
||||
|
||||
@ -47,7 +47,7 @@ ENDMACRO()
|
||||
MACRO( CONFIGURE_MIC )
|
||||
CHECK_ENABLE_FLAG( USE_MIC 0 )
|
||||
ADD_DEFINITIONS ( "-D USE_MIC" )
|
||||
ENDMACRO()
|
||||
ENDMACRO()
|
||||
|
||||
|
||||
# Macro to find and configure the MPI libraries
|
||||
@ -72,13 +72,13 @@ MACRO( CONFIGURE_MPI )
|
||||
# User specified the name of the MPI executable
|
||||
SET ( MPIEXEC ${MPI_DIRECTORY}/bin/${MPIEXEC_CMD} )
|
||||
IF ( NOT EXISTS ${MPIEXEC} )
|
||||
MESSAGE ( FATAL_ERROR "${MPIEXEC_CMD} not found in ${MPI_DIRECTORY}/bin" )
|
||||
MESSAGE( FATAL_ERROR "${MPIEXEC_CMD} not found in ${MPI_DIRECTORY}/bin" )
|
||||
ENDIF ()
|
||||
ELSE ()
|
||||
# Search for the MPI executable in the current directory
|
||||
FIND_PROGRAM ( MPIEXEC NAMES mpiexec mpirun lamexec PATHS ${MPI_DIRECTORY}/bin NO_DEFAULT_PATH )
|
||||
IF ( NOT MPIEXEC )
|
||||
MESSAGE ( FATAL_ERROR "Could not locate mpi executable" )
|
||||
MESSAGE( FATAL_ERROR "Could not locate mpi executable" )
|
||||
ENDIF()
|
||||
ENDIF ()
|
||||
# Set MPI flags
|
||||
@ -94,26 +94,33 @@ MACRO( CONFIGURE_MPI )
|
||||
# Perform the default search for MPI
|
||||
INCLUDE ( FindMPI )
|
||||
IF ( NOT MPI_FOUND )
|
||||
MESSAGE ( FATAL_ERROR "Did not find MPI" )
|
||||
MESSAGE( " MPI_INCLUDE = ${MPI_INCLUDE}" )
|
||||
MESSAGE( " MPI_LINK_FLAGS = ${MPI_LINK_FLAGS}" )
|
||||
MESSAGE( " MPI_LIBRARIES = ${MPI_LIBRARIES}" )
|
||||
MESSAGE( FATAL_ERROR "Did not find MPI" )
|
||||
ENDIF ()
|
||||
INCLUDE_DIRECTORIES ( ${MPI_INCLUDE_PATH} )
|
||||
SET ( MPI_INCLUDE ${MPI_INCLUDE_PATH} )
|
||||
INCLUDE_DIRECTORIES( "${MPI_INCLUDE_PATH}" )
|
||||
SET( MPI_INCLUDE "${MPI_INCLUDE_PATH}" )
|
||||
ENDIF()
|
||||
# Check if we need to use MPI for serial tests
|
||||
CHECK_ENABLE_FLAG( USE_MPI_FOR_SERIAL_TESTS 0 )
|
||||
# Set defaults if they have not been set
|
||||
IF ( NOT MPIEXEC )
|
||||
SET( MPIEXEC mpirun )
|
||||
ENDIF()
|
||||
# Set defaults
|
||||
IF ( NOT MPIEXEC_NUMPROC_FLAG )
|
||||
SET(MPIEXEC_NUMPROC_FLAG "-n")
|
||||
ENDIF()
|
||||
# Check if we need to use MPI for serial tests
|
||||
CHECK_ENABLE_FLAG( USE_MPI_FOR_SERIAL_TESTS 0 )
|
||||
SET( MPI_CXXFLAGS -DUSE_MPI -I${MPI_INCLUDE} )
|
||||
# Set the definitions
|
||||
ADD_DEFINITIONS ( "-D USE_MPI" )
|
||||
MESSAGE ( "Using MPI" )
|
||||
MESSAGE ( " MPIEXEC = ${MPIEXEC}" )
|
||||
MESSAGE ( " MPIEXEC_NUMPROC_FLAG = ${MPIEXEC_NUMPROC_FLAG}" )
|
||||
MESSAGE ( " MPI_INCLUDE = ${MPI_INCLUDE}" )
|
||||
MESSAGE ( " MPI_LINK_FLAGS = ${MPI_LINK_FLAGS}" )
|
||||
MESSAGE ( " MPI_LIBRARIES = ${MPI_LIBRARIES}" )
|
||||
ADD_DEFINITIONS( "-D USE_MPI" )
|
||||
MESSAGE( "Using MPI" )
|
||||
MESSAGE( " MPIEXEC = ${MPIEXEC}" )
|
||||
MESSAGE( " MPIEXEC_NUMPROC_FLAG = ${MPIEXEC_NUMPROC_FLAG}" )
|
||||
MESSAGE( " MPI_INCLUDE = ${MPI_INCLUDE}" )
|
||||
MESSAGE( " MPI_LINK_FLAGS = ${MPI_LINK_FLAGS}" )
|
||||
MESSAGE( " MPI_LIBRARIES = ${MPI_LIBRARIES}" )
|
||||
ELSE()
|
||||
SET( USE_MPI_FOR_SERIAL_TESTS 0 )
|
||||
SET( MPIEXEC "" )
|
||||
@ -121,9 +128,9 @@ MACRO( CONFIGURE_MPI )
|
||||
SET( MPI_INCLUDE "" )
|
||||
SET( MPI_LINK_FLAGS "" )
|
||||
SET( MPI_LIBRARIES "" )
|
||||
MESSAGE ( "Not using MPI, all parallel tests will be disabled" )
|
||||
MESSAGE( "Not using MPI, all parallel tests will be disabled" )
|
||||
ENDIF()
|
||||
ENDMACRO ()
|
||||
ENDMACRO()
|
||||
|
||||
|
||||
# Macro to configure system-specific libraries and flags
|
||||
@ -141,37 +148,46 @@ MACRO( CONFIGURE_SYSTEM )
|
||||
# Remove extra library links
|
||||
# Get the compiler
|
||||
SET_COMPILER ()
|
||||
# Add the static flag if necessary
|
||||
CHECK_ENABLE_FLAG( USE_EXT_STATIC 0 )
|
||||
IF ( USE_EXT_STATIC )
|
||||
CHECK_ENABLE_FLAG( USE_STATIC 0 )
|
||||
IF ( USE_STATIC )
|
||||
SET(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "-static") # Add static flag
|
||||
SET(CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS "-static") # Add static flag
|
||||
ENDIF()
|
||||
# Add system dependent flags
|
||||
IF ( USING_MICROSOFT )
|
||||
MESSAGE("System is: ${CMAKE_SYSTEM_NAME}")
|
||||
IF ( ${CMAKE_SYSTEM_NAME} STREQUAL "Windows" )
|
||||
# Windows specific system libraries
|
||||
SET( SYSTEM_PATHS "C:/Program Files (x86)/Microsoft SDKs/Windows/v7.0A/Lib/x64"
|
||||
"C:/Program Files (x86)/Microsoft Visual Studio 8/VC/PlatformSDK/Lib/AMD64" )
|
||||
FIND_LIBRARY ( PSAPI_LIB NAMES Psapi PATHS ${SYSTEM_PATHS} NO_DEFAULT_PATH )
|
||||
FIND_LIBRARY ( DBGHELP_LIB NAMES DbgHelp PATHS ${SYSTEM_PATHS} NO_DEFAULT_PATH )
|
||||
SET( SYSTEM_LIBS ${PSAPI_LIB} ${DBGHELP_LIB} )
|
||||
"C:/Program Files (x86)/Microsoft Visual Studio 8/VC/PlatformSDK/Lib/AMD64"
|
||||
"C:/Program Files (x86)/Microsoft Visual Studio 12.0/Common7/Packages/Debugger/X64" )
|
||||
FIND_LIBRARY( PSAPI_LIB NAMES Psapi PATHS ${SYSTEM_PATHS} NO_DEFAULT_PATH )
|
||||
FIND_LIBRARY( DBGHELP_LIB NAMES DbgHelp PATHS ${SYSTEM_PATHS} NO_DEFAULT_PATH )
|
||||
FIND_LIBRARY( DBGHELP_LIB NAMES DbgHelp )
|
||||
IF ( PSAPI_LIB )
|
||||
ADD_DEFINITIONS( -D PSAPI )
|
||||
SET( SYSTEM_LIBS ${PSAPI_LIB} )
|
||||
ENDIF()
|
||||
IF ( DBGHELP_LIB )
|
||||
ADD_DEFINITIONS( -D DBGHELP )
|
||||
SET( SYSTEM_LIBS ${DBGHELP_LIB} )
|
||||
ELSE()
|
||||
MESSAGE( WARNING "Did not find DbgHelp, stack trace will not be availible" )
|
||||
ENDIF()
|
||||
MESSAGE("System libs: ${SYSTEM_LIBS}")
|
||||
ELSEIF( ${CMAKE_SYSTEM_NAME} STREQUAL "Linux" )
|
||||
# Linux specific system libraries
|
||||
CHECK_C_COMPILER_FLAG("-rdynamic" RESULT)
|
||||
IF(RESULT)
|
||||
SET( SYSTEM_LIBS "-lpthread -lz -ldl -rdynamic" )
|
||||
ELSE()
|
||||
SET( SYSTEM_LIBS "-lpthread -lz -ldl" )
|
||||
SET( SYSTEM_LIBS -lz -lpthread -ldl )
|
||||
IF ( NOT USE_STATIC )
|
||||
SET( SYSTEM_LDFLAGS ${SYSTEM_LDFLAGS} -rdynamic ) # Needed for backtrace to print function names
|
||||
ENDIF()
|
||||
IF ( USING_GCC )
|
||||
SET( SYSTEM_LIBS ${SYSTEM_LIBS} "-lgfortran" )
|
||||
SET( SYSTEM_LIBS ${SYSTEM_LIBS} -lgfortran )
|
||||
SET(CMAKE_C_FLAGS " ${CMAKE_C_FLAGS} -fPIC" )
|
||||
SET(CMAKE_CXX_FLAGS " ${CMAKE_CXX_FLAGS} -fPIC" )
|
||||
ENDIF()
|
||||
ELSEIF( ${CMAKE_SYSTEM_NAME} STREQUAL "Darwin" )
|
||||
# Max specific system libraries
|
||||
SET( SYSTEM_LIBS "-lz -ldl" )
|
||||
SET( SYSTEM_LIBS -lz -lpthread -ldl )
|
||||
ELSEIF( ${CMAKE_SYSTEM_NAME} STREQUAL "Generic" )
|
||||
# Generic system libraries
|
||||
ELSE()
|
||||
@ -189,11 +205,7 @@ MACRO ( CONFIGURE_LBPM )
|
||||
SET( TEST_MAX_PROCS 32 )
|
||||
ENDIF()
|
||||
# Add the correct paths to rpath in case we build shared libraries
|
||||
SET( CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE )
|
||||
SET( CMAKE_BUILD_WITH_INSTALL_RPATH TRUE )
|
||||
SET(CMAKE_INSTALL_RPATH ${CMAKE_INSTALL_RPATH} "${TIMER_DIRECTORY}" "${LBPM_INSTALL_DIR}/lib" )
|
||||
IF (LIB_TYPE )
|
||||
IF ( ${LIB_TYPE} STREQUAL "SHARED" )
|
||||
SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
|
||||
SET(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
ENDMACRO ()
|
||||
|
@ -10,7 +10,7 @@ ENDIF()
|
||||
IF ( NOT ${PROJ}_INSTALL_DIR )
|
||||
MESSAGE(FATAL_ERROR "${PROJ}_INSTALL_DIR must be set before including macros.cmake")
|
||||
ENDIF()
|
||||
#MESSAGE("Installing project ${PROJ} in ${${PROJ}_INSTALL_DIR}")
|
||||
|
||||
|
||||
|
||||
# Macro to print all variables
|
||||
@ -162,37 +162,39 @@ ENDMACRO()
|
||||
# Macro to identify the compiler
|
||||
MACRO( SET_COMPILER )
|
||||
# SET the C/C++ compiler
|
||||
IF( CMAKE_COMPILE_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX )
|
||||
SET( USING_GCC TRUE )
|
||||
ADD_DEFINITIONS( -D USING_GCC )
|
||||
MESSAGE("Using gcc")
|
||||
ELSEIF( MSVC OR MSVC_IDE OR MSVC60 OR MSVC70 OR MSVC71 OR MSVC80 OR CMAKE_COMPILER_2005 OR MSVC90 OR MSVC10 )
|
||||
IF( NOT ${CMAKE_SYSTEM_NAME} STREQUAL "Windows" )
|
||||
MESSAGE( FATAL_ERROR "Using microsoft compilers on non-windows system?" )
|
||||
IF ( CMAKE_C_COMPILER_WORKS OR CMAKE_C_COMPILER_WORKS )
|
||||
IF( CMAKE_COMPILE_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX )
|
||||
SET( USING_GCC TRUE )
|
||||
ADD_DEFINITIONS( -D USING_GCC )
|
||||
MESSAGE("Using gcc")
|
||||
ELSEIF( MSVC OR MSVC_IDE OR MSVC60 OR MSVC70 OR MSVC71 OR MSVC80 OR CMAKE_COMPILER_2005 OR MSVC90 OR MSVC10 )
|
||||
IF( NOT ${CMAKE_SYSTEM_NAME} STREQUAL "Windows" )
|
||||
MESSAGE( FATAL_ERROR "Using microsoft compilers on non-windows system?" )
|
||||
ENDIF()
|
||||
SET( USING_MICROSOFT TRUE )
|
||||
ADD_DEFINITIONS( -D USING_MICROSOFT )
|
||||
MESSAGE("Using Microsoft")
|
||||
ELSEIF( (${CMAKE_C_COMPILER_ID} MATCHES "Intel") OR (${CMAKE_CXX_COMPILER_ID} MATCHES "Intel") )
|
||||
SET(USING_ICC TRUE)
|
||||
ADD_DEFINITIONS( -D USING_ICC )
|
||||
MESSAGE("Using icc")
|
||||
ELSEIF( ${CMAKE_C_COMPILER_ID} MATCHES "PGI")
|
||||
SET(USING_PGCC TRUE)
|
||||
ADD_DEFINITIONS( -D USING_ICCPGCC )
|
||||
MESSAGE("Using pgCC")
|
||||
ELSEIF( (${CMAKE_C_COMPILER_ID} MATCHES "CRAY") OR (${CMAKE_C_COMPILER_ID} MATCHES "Cray") )
|
||||
SET(USING_CRAY TRUE)
|
||||
ADD_DEFINITIONS( -D USING_CRAY )
|
||||
MESSAGE("Using Cray")
|
||||
ELSEIF( (${CMAKE_C_COMPILER_ID} MATCHES "CLANG") OR (${CMAKE_C_COMPILER_ID} MATCHES "Clang") )
|
||||
SET(USING_CLANG TRUE)
|
||||
ADD_DEFINITIONS( -D USING_CLANG )
|
||||
MESSAGE("Using Clang")
|
||||
ELSE()
|
||||
SET(USING_DEFAULT TRUE)
|
||||
MESSAGE("${CMAKE_C_COMPILER_ID}")
|
||||
MESSAGE("Unknown C/C++ compiler, default flags will be used")
|
||||
ENDIF()
|
||||
SET( USING_MICROSOFT TRUE )
|
||||
ADD_DEFINITIONS( -D USING_MICROSOFT )
|
||||
MESSAGE("Using Microsoft")
|
||||
ELSEIF( (${CMAKE_C_COMPILER_ID} MATCHES "Intel") OR (${CMAKE_CXX_COMPILER_ID} MATCHES "Intel") )
|
||||
SET(USING_ICC TRUE)
|
||||
ADD_DEFINITIONS( -D USING_ICC )
|
||||
MESSAGE("Using icc")
|
||||
ELSEIF( ${CMAKE_C_COMPILER_ID} MATCHES "PGI")
|
||||
SET(USING_PGCC TRUE)
|
||||
ADD_DEFINITIONS( -D USING_ICCPGCC )
|
||||
MESSAGE("Using pgCC")
|
||||
ELSEIF( (${CMAKE_C_COMPILER_ID} MATCHES "CRAY") OR (${CMAKE_C_COMPILER_ID} MATCHES "Cray") )
|
||||
SET(USING_CRAY TRUE)
|
||||
ADD_DEFINITIONS( -D USING_CRAY )
|
||||
MESSAGE("Using Cray")
|
||||
ELSEIF( (${CMAKE_C_COMPILER_ID} MATCHES "CLANG") OR (${CMAKE_C_COMPILER_ID} MATCHES "Clang") )
|
||||
SET(USING_CLANG TRUE)
|
||||
ADD_DEFINITIONS( -D USING_CLANG )
|
||||
MESSAGE("Using Clang")
|
||||
ELSE()
|
||||
SET(USING_DEFAULT TRUE)
|
||||
MESSAGE("${CMAKE_C_COMPILER_ID}")
|
||||
MESSAGE("Unknown C/C++ compiler, default flags will be used")
|
||||
ENDIF()
|
||||
ENDMACRO()
|
||||
|
||||
@ -539,17 +541,19 @@ MACRO( ADD_DISTCLEAN ${ARGN} )
|
||||
Testing
|
||||
include
|
||||
doc
|
||||
docs
|
||||
latex_docs
|
||||
lib
|
||||
tests
|
||||
Makefile.config
|
||||
install_manifest.txt
|
||||
test
|
||||
matlab
|
||||
mex
|
||||
tmp
|
||||
#tmp#
|
||||
bin
|
||||
liblbpm-wia.a
|
||||
liblbpm-wia.so
|
||||
cpu
|
||||
gpu
|
||||
example
|
||||
common
|
||||
visit
|
||||
IO
|
||||
cmake
|
||||
${ARGN}
|
||||
)
|
||||
ADD_CUSTOM_TARGET (distclean @echo cleaning for source distribution)
|
||||
IF (UNIX)
|
||||
@ -566,6 +570,7 @@ MACRO( ADD_DISTCLEAN ${ARGN} )
|
||||
*.vcxproj*
|
||||
ipch
|
||||
x64
|
||||
Debug
|
||||
)
|
||||
SET( DISTCLEAN_FILE "${CMAKE_CURRENT_BINARY_DIR}/distclean.bat" )
|
||||
FILE( WRITE "${DISTCLEAN_FILE}" "del /s /q /f " )
|
||||
|
Loading…
Reference in New Issue
Block a user