From Philip Lowman, clean up of CMake files
This commit is contained in:
@@ -113,6 +113,10 @@ int main()
|
||||
" _OPENTHREADS_ATOMIC_USE_BSD_ATOMIC)
|
||||
|
||||
|
||||
IF(NOT _OPENTHREADS_ATOMIC_USE_GCC_BUILTINS AND NOT _OPENTHREADS_ATOMIC_USE_MIPOSPRO_BUILTINS AND NOT _OPENTHREADS_ATOMIC_USE_SUN AND NOT _OPENTHREADS_ATOMIC_USE_WIN32_INTERLOCKED AND NOT _OPENTHREADS_ATOMIC_USE_BSD_ATOMIC)
|
||||
SET(_OPENTHREADS_ATOMIC_USE_MUTEX 1)
|
||||
ENDIF(NOT _OPENTHREADS_ATOMIC_USE_GCC_BUILTINS AND NOT _OPENTHREADS_ATOMIC_USE_MIPOSPRO_BUILTINS AND NOT _OPENTHREADS_ATOMIC_USE_SUN AND NOT _OPENTHREADS_ATOMIC_USE_WIN32_INTERLOCKED AND NOT _OPENTHREADS_ATOMIC_USE_BSD_ATOMIC)
|
||||
IF(NOT _OPENTHREADS_ATOMIC_USE_GCC_BUILTINS AND
|
||||
NOT _OPENTHREADS_ATOMIC_USE_MIPOSPRO_BUILTINS AND
|
||||
NOT _OPENTHREADS_ATOMIC_USE_SUN AND
|
||||
NOT _OPENTHREADS_ATOMIC_USE_WIN32_INTERLOCKED AND
|
||||
NOT _OPENTHREADS_ATOMIC_USE_BSD_ATOMIC)
|
||||
SET(_OPENTHREADS_ATOMIC_USE_MUTEX 1)
|
||||
ENDIF()
|
||||
|
||||
@@ -9,10 +9,10 @@ SET(INSTALL_BINDIR bin)
|
||||
IF(WIN32)
|
||||
SET(INSTALL_LIBDIR bin)
|
||||
SET(INSTALL_ARCHIVEDIR lib)
|
||||
ELSE(WIN32)
|
||||
ELSE()
|
||||
SET(INSTALL_LIBDIR lib${LIB_POSTFIX})
|
||||
SET(INSTALL_ARCHIVEDIR lib${LIB_POSTFIX})
|
||||
ENDIF(WIN32)
|
||||
ENDIF()
|
||||
|
||||
SET(HEADERS_GROUP "Header Files")
|
||||
|
||||
@@ -23,7 +23,7 @@ SOURCE_GROUP(
|
||||
|
||||
IF(MSVC AND OSG_MSVC_VERSIONED_DLL)
|
||||
HANDLE_MSVC_DLL()
|
||||
ENDIF(MSVC AND OSG_MSVC_VERSIONED_DLL)
|
||||
ENDIF()
|
||||
|
||||
INSTALL(
|
||||
TARGETS ${LIB_NAME}
|
||||
|
||||
@@ -13,9 +13,9 @@
|
||||
# require i386 so this is for the future
|
||||
IF("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "i686")
|
||||
SET(SYSTEM_ARCH "i386")
|
||||
ELSE("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "i686")
|
||||
ELSE()
|
||||
SET(SYSTEM_ARCH ${CMAKE_SYSTEM_PROCESSOR})
|
||||
ENDIF("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "i686")
|
||||
ENDIF()
|
||||
|
||||
# set a default system name - use CMake setting (Linux|Windows|...)
|
||||
SET(SYSTEM_NAME ${CMAKE_SYSTEM_NAME})
|
||||
@@ -26,23 +26,24 @@ SET(SYSTEM_NAME ${CMAKE_SYSTEM_NAME})
|
||||
IF(MSVC)
|
||||
IF(CMAKE_CL_64)
|
||||
SET(SYSTEM_NAME "win64")
|
||||
ELSE(CMAKE_CL_64)
|
||||
ELSE()
|
||||
SET(SYSTEM_NAME "win32")
|
||||
ENDIF(CMAKE_CL_64)
|
||||
ENDIF(MSVC)
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
|
||||
# Guess the compiler (is this desired for other platforms than windows?)
|
||||
IF(NOT DEFINED OSG_CPACK_COMPILER)
|
||||
INCLUDE(OsgDetermineCompiler)
|
||||
ENDIF(NOT DEFINED OSG_CPACK_COMPILER)
|
||||
ENDIF()
|
||||
|
||||
# expose the compiler setting to the user
|
||||
SET(OSG_CPACK_COMPILER "${OSG_COMPILER}" CACHE STRING "This ia short string (vc90, vc80sp1, gcc-4.3, ...) describing your compiler. The string is used for creating package filenames")
|
||||
|
||||
IF(OSG_CPACK_COMPILER)
|
||||
SET(OSG_CPACK_SYSTEM_SPEC_STRING ${SYSTEM_NAME}-${SYSTEM_ARCH}-${OSG_CPACK_COMPILER})
|
||||
ELSE(OSG_CPACK_COMPILER)
|
||||
SET(OSG_CPACK_SYSTEM_SPEC_STRING ${SYSTEM_NAME}-${SYSTEM_ARCH})
|
||||
ENDIF(OSG_CPACK_COMPILER)
|
||||
SET(OSG_CPACK_SYSTEM_SPEC_STRING ${SYSTEM_NAME}-${SYSTEM_ARCH}-${OSG_CPACK_COMPILER})
|
||||
ELSE()
|
||||
SET(OSG_CPACK_SYSTEM_SPEC_STRING ${SYSTEM_NAME}-${SYSTEM_ARCH})
|
||||
ENDIF()
|
||||
|
||||
|
||||
## variables that apply to all packages
|
||||
@@ -57,15 +58,15 @@ SET(CPACK_SOURCE_GENERATOR "TGZ")
|
||||
IF(MSVC_IDE)
|
||||
SET(OSG_CPACK_CONFIGURATION "$(OutDir)")
|
||||
SET(PACKAGE_TARGET_PREFIX "Package ")
|
||||
ELSE(MSVC_IDE)
|
||||
ELSE()
|
||||
# on un*x an empty CMAKE_BUILD_TYPE means release
|
||||
IF(CMAKE_BUILD_TYPE)
|
||||
SET(OSG_CPACK_CONFIGURATION ${CMAKE_BUILD_TYPE})
|
||||
ELSE(CMAKE_BUILD_TYPE)
|
||||
ELSE()
|
||||
SET(OSG_CPACK_CONFIGURATION "Release")
|
||||
ENDIF(CMAKE_BUILD_TYPE)
|
||||
ENDIF()
|
||||
SET(PACKAGE_TARGET_PREFIX "package_")
|
||||
ENDIF(MSVC_IDE)
|
||||
ENDIF()
|
||||
|
||||
# Get all defined components
|
||||
GET_CMAKE_PROPERTY(CPACK_COMPONENTS_ALL COMPONENTS)
|
||||
@@ -74,35 +75,39 @@ IF(NOT CPACK_COMPONENTS_ALL)
|
||||
# I set it manually to be the packages that can always be packaged
|
||||
MESSAGE("When building packages please consider using cmake version 2.6.1 or above")
|
||||
SET(CPACK_COMPONENTS_ALL libopenscenegraph libopenthreads openscenegraph libopenscenegraph-dev libopenthreads-dev)
|
||||
ENDIF(NOT CPACK_COMPONENTS_ALL)
|
||||
ENDIF()
|
||||
|
||||
# Create a target that will be used to generate all packages defined below
|
||||
SET(PACKAGE_ALL_TARGETNAME "${PACKAGE_TARGET_PREFIX}ALL")
|
||||
ADD_CUSTOM_TARGET(${PACKAGE_ALL_TARGETNAME})
|
||||
|
||||
#=============================
|
||||
# Macro:
|
||||
# GENERATE_PACKAGING_TARGET()
|
||||
#
|
||||
MACRO(GENERATE_PACKAGING_TARGET package_name)
|
||||
SET(CPACK_PACKAGE_NAME ${package_name})
|
||||
|
||||
# the doc packages don't need a system-arch specification
|
||||
IF(${package} MATCHES -doc)
|
||||
SET(OSG_PACKAGE_FILE_NAME ${package_name}-${OPENSCENEGRAPH_VERSION})
|
||||
ELSE(${package} MATCHES -doc)
|
||||
ELSE()
|
||||
SET(OSG_PACKAGE_FILE_NAME ${package_name}-${OPENSCENEGRAPH_VERSION}-${OSG_CPACK_SYSTEM_SPEC_STRING}-${OSG_CPACK_CONFIGURATION})
|
||||
IF(NOT DYNAMIC_OPENSCENEGRAPH)
|
||||
SET(OSG_PACKAGE_FILE_NAME ${OSG_PACKAGE_FILE_NAME}-static)
|
||||
ENDIF(NOT DYNAMIC_OPENSCENEGRAPH)
|
||||
ENDIF(${package} MATCHES -doc)
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
|
||||
CONFIGURE_FILE("${OpenSceneGraph_SOURCE_DIR}/CMakeModules/OsgCPackConfig.cmake.in" "${OpenSceneGraph_BINARY_DIR}/CPackConfig-${package_name}.cmake" IMMEDIATE)
|
||||
|
||||
SET(PACKAGE_TARGETNAME "${PACKAGE_TARGET_PREFIX}${package_name}")
|
||||
|
||||
# This is naive and will probably need fixing eventually
|
||||
IF(MSVC)
|
||||
IF(WIN32)
|
||||
SET(MOVE_COMMAND "move")
|
||||
ELSE(MSVC)
|
||||
ELSE()
|
||||
SET(MOVE_COMMAND "mv")
|
||||
ENDIF(MSVC)
|
||||
ENDIF()
|
||||
|
||||
# Create a target that creates the current package
|
||||
# and rename the package to give it proper filename
|
||||
@@ -121,6 +126,8 @@ MACRO(GENERATE_PACKAGING_TARGET package_name)
|
||||
COMMAND ${CMAKE_COMMAND} -E echo "renamed ${CPACK_PACKAGE_FILE_NAME}.tar.gz -> ${OSG_PACKAGE_FILE_NAME}.tar.gz"
|
||||
)
|
||||
ENDMACRO(GENERATE_PACKAGING_TARGET)
|
||||
#
|
||||
#=============================
|
||||
|
||||
# Create configs and targets for a package including all components
|
||||
SET(OSG_CPACK_COMPONENT ALL)
|
||||
@@ -130,4 +137,4 @@ GENERATE_PACKAGING_TARGET(openscenegraph-all)
|
||||
FOREACH(package ${CPACK_COMPONENTS_ALL})
|
||||
SET(OSG_CPACK_COMPONENT ${package})
|
||||
GENERATE_PACKAGING_TARGET(${package})
|
||||
ENDFOREACH(package ${CPACK_COMPONENTS_ALL})
|
||||
ENDFOREACH()
|
||||
|
||||
@@ -1,81 +1,74 @@
|
||||
# - Figure out what compiler (and version) cmake is generating for
|
||||
# Once done this will define:
|
||||
# - If Visual Studio is being used, this script sets the variable OSG_COMPILER
|
||||
# The principal reason for this is due to MSVC 8.0 SP0 vs SP1 builds.
|
||||
#
|
||||
# Variable:
|
||||
# OSG_COMPILER
|
||||
#
|
||||
|
||||
IF(CMAKE_COMPILER_IS_GNUCXX)
|
||||
# Not currently used...
|
||||
#IF(CMAKE_COMPILER_IS_GNUCXX)
|
||||
# EXEC_PROGRAM(
|
||||
# ${CMAKE_CXX_COMPILER}
|
||||
# ARGS ${CMAKE_CXX_COMPILER_ARG1} -dumpversion
|
||||
# OUTPUT_VARIABLE gcc_compiler_version
|
||||
# )
|
||||
# #MESSAGE("GCC Version: ${gcc_compiler_version}")
|
||||
|
||||
EXEC_PROGRAM(
|
||||
${CMAKE_CXX_COMPILER}
|
||||
ARGS ${CMAKE_CXX_COMPILER_ARG1} -dumpversion
|
||||
OUTPUT_VARIABLE gcc_compiler_version
|
||||
)
|
||||
#MESSAGE("GCC Version: ${gcc_compiler_version}")
|
||||
IF(MSVC60)
|
||||
SET(OSG_COMPILER "vc60")
|
||||
ELSEIF(MSVC70)
|
||||
SET(OSG_COMPILER "vc70")
|
||||
ELSEIF(MSVC71)
|
||||
SET(OSG_COMPILER "vc71")
|
||||
ELSEIF(MSVC80)
|
||||
SET(OSG_COMPILER "vc80")
|
||||
ELSEIF(MSVC90)
|
||||
SET(OSG_COMPILER "vc90")
|
||||
ENDIF()
|
||||
|
||||
ELSE(CMAKE_COMPILER_IS_GNUCXX)
|
||||
IF(MSVC)
|
||||
IF(MSVC60)
|
||||
SET(OSG_COMPILER "vc60")
|
||||
ENDIF(MSVC60)
|
||||
IF(MSVC70)
|
||||
SET(OSG_COMPILER "vc70")
|
||||
ENDIF(MSVC70)
|
||||
IF(MSVC71)
|
||||
SET(OSG_COMPILER "vc71")
|
||||
ENDIF(MSVC71)
|
||||
IF(MSVC80)
|
||||
|
||||
IF(MSVC80)
|
||||
MESSAGE(STATUS "Checking if compiler has service pack 1 installed...")
|
||||
FILE(WRITE "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.cxx" "int main() {return 0;}\n")
|
||||
|
||||
TRY_COMPILE(_TRY_RESULT
|
||||
${CMAKE_BINARY_DIR}
|
||||
${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.cxx
|
||||
CMAKE_FLAGS -D CMAKE_VERBOSE_MAKEFILE=ON
|
||||
OUTPUT_VARIABLE OUTPUT
|
||||
)
|
||||
|
||||
IF(_TRY_RESULT)
|
||||
# parse for exact compiler version
|
||||
STRING(REGEX MATCH "Compiler Version [0-9]+.[0-9]+.[0-9]+.[0-9]+" vc_compiler_version "${OUTPUT}")
|
||||
IF(vc_compiler_version)
|
||||
#MESSAGE("${vc_compiler_version}")
|
||||
STRING(REGEX MATCHALL "[0-9]+" CL_VERSION_LIST "${vc_compiler_version}")
|
||||
LIST(GET CL_VERSION_LIST 0 CL_MAJOR_VERSION)
|
||||
LIST(GET CL_VERSION_LIST 1 CL_MINOR_VERSION)
|
||||
LIST(GET CL_VERSION_LIST 2 CL_PATCH_VERSION)
|
||||
LIST(GET CL_VERSION_LIST 3 CL_EXTRA_VERSION)
|
||||
ENDIF(vc_compiler_version)
|
||||
|
||||
# Standard vc80 is 14.00.50727.42, sp1 14.00.50727.762, sp2?
|
||||
# Standard vc90 is 9.0.30729.1, sp1 ?
|
||||
IF(CL_EXTRA_VERSION EQUAL 762)
|
||||
SET(OSG_COMPILER "vc80sp1")
|
||||
ELSE(CL_EXTRA_VERSION EQUAL 762)
|
||||
SET(OSG_COMPILER "vc80")
|
||||
ENDIF(MSVC80)
|
||||
IF(MSVC90)
|
||||
SET(OSG_COMPILER "vc90")
|
||||
ENDIF(MSVC90)
|
||||
ENDIF(CL_EXTRA_VERSION EQUAL 762)
|
||||
|
||||
IF(MSVC80)
|
||||
MESSAGE(STATUS "Checking if compiler has service pack 1 installed...")
|
||||
FILE(WRITE "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.cxx" "int main() {return 0;}\n")
|
||||
|
||||
TRY_COMPILE(_TRY_RESULT
|
||||
${CMAKE_BINARY_DIR}
|
||||
${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.cxx
|
||||
CMAKE_FLAGS -D CMAKE_VERBOSE_MAKEFILE=ON
|
||||
OUTPUT_VARIABLE OUTPUT
|
||||
)
|
||||
|
||||
IF(_TRY_RESULT)
|
||||
# parse for exact compiler version
|
||||
STRING(REGEX MATCH "Compiler Version [0-9]+.[0-9]+.[0-9]+.[0-9]+" vc_compiler_version "${OUTPUT}")
|
||||
IF(vc_compiler_version)
|
||||
#MESSAGE("${vc_compiler_version}")
|
||||
STRING(REGEX MATCHALL "[0-9]+" CL_VERSION_LIST "${vc_compiler_version}")
|
||||
LIST(GET CL_VERSION_LIST 0 CL_MAJOR_VERSION)
|
||||
LIST(GET CL_VERSION_LIST 1 CL_MINOR_VERSION)
|
||||
LIST(GET CL_VERSION_LIST 2 CL_PATCH_VERSION)
|
||||
LIST(GET CL_VERSION_LIST 3 CL_EXTRA_VERSION)
|
||||
ENDIF(vc_compiler_version)
|
||||
|
||||
# Standard vc80 is 14.00.50727.42, sp1 14.00.50727.762, sp2?
|
||||
# Standard vc90 is 9.0.30729.1, sp1 ?
|
||||
IF(CL_EXTRA_VERSION EQUAL 762)
|
||||
SET(OSG_COMPILER "vc80sp1")
|
||||
ELSE(CL_EXTRA_VERSION EQUAL 762)
|
||||
SET(OSG_COMPILER "vc80")
|
||||
ENDIF(CL_EXTRA_VERSION EQUAL 762)
|
||||
|
||||
# parse for exact visual studio version
|
||||
#IF(MSVC_IDE)
|
||||
# string(REGEX MATCH "Visual Studio Version [0-9]+.[0-9]+.[0-9]+.[0-9]+" vs_version "${OUTPUT}")
|
||||
# IF(vs_version)
|
||||
# MESSAGE("${vs_version}")
|
||||
# string(REGEX MATCHALL "[0-9]+" VS_VERSION_LIST "${vs_version}")
|
||||
# list(GET VS_VERSION_LIST 0 VS_MAJOR_VERSION)
|
||||
# list(GET VS_VERSION_LIST 1 VS_MINOR_VERSION)
|
||||
# list(GET VS_VERSION_LIST 2 VS_PATCH_VERSION)
|
||||
# list(GET VS_VERSION_LIST 3 VS_EXTRA_VERSION)
|
||||
# ENDIF(vs_version)
|
||||
#ENDIF(MSVC_IDE)
|
||||
ENDIF(_TRY_RESULT)
|
||||
ENDIF(MSVC80)
|
||||
ENDIF(MSVC)
|
||||
ENDIF(CMAKE_COMPILER_IS_GNUCXX)
|
||||
# parse for exact visual studio version
|
||||
#IF(MSVC_IDE)
|
||||
# string(REGEX MATCH "Visual Studio Version [0-9]+.[0-9]+.[0-9]+.[0-9]+" vs_version "${OUTPUT}")
|
||||
# IF(vs_version)
|
||||
# MESSAGE("${vs_version}")
|
||||
# string(REGEX MATCHALL "[0-9]+" VS_VERSION_LIST "${vs_version}")
|
||||
# list(GET VS_VERSION_LIST 0 VS_MAJOR_VERSION)
|
||||
# list(GET VS_VERSION_LIST 1 VS_MINOR_VERSION)
|
||||
# list(GET VS_VERSION_LIST 2 VS_PATCH_VERSION)
|
||||
# list(GET VS_VERSION_LIST 3 VS_EXTRA_VERSION)
|
||||
# ENDIF(vs_version)
|
||||
#ENDIF(MSVC_IDE)
|
||||
ENDIF(_TRY_RESULT)
|
||||
ENDIF(MSVC80)
|
||||
|
||||
@@ -1,180 +1,220 @@
|
||||
|
||||
INCLUDE(ListHandle)
|
||||
|
||||
#---------------------------------------------------
|
||||
# Macro: FILTER_OUT FILTERS INPUTS OUTPUT
|
||||
#
|
||||
# Mimicks Gnu Make's $(filter-out) which removes elements
|
||||
# from a list that match the pattern.
|
||||
# Arguments:
|
||||
# FILTERS - list of patterns that need to be removed
|
||||
# INPUTS - list of inputs that will be worked on
|
||||
# OUTPUT - the filtered list to be returned
|
||||
#
|
||||
# Example:
|
||||
# SET(MYLIST this that and the other)
|
||||
# SET(FILTS this that)
|
||||
#
|
||||
# FILTER_OUT("${FILTS}" "${MYLIST}" OUT)
|
||||
# MESSAGE("OUTPUT = ${OUT}")
|
||||
#
|
||||
# The output -
|
||||
# OUTPUT = and;the;other
|
||||
#
|
||||
#---------------------------------------------------
|
||||
MACRO(FILTER_OUT FILTERS INPUTS OUTPUT)
|
||||
SET(FOUT "")
|
||||
FOREACH(INP ${INPUTS})
|
||||
SET(FILTERED 0)
|
||||
|
||||
MACRO(FILTER_OUT FILTERS INPUTS OUTPUT)
|
||||
# Mimicks Gnu Make's $(filter-out) which removes elements
|
||||
# from a list that match the pattern.
|
||||
# Arguments:
|
||||
# FILTERS - list of patterns that need to be removed
|
||||
# INPUTS - list of inputs that will be worked on
|
||||
# OUTPUT - the filtered list to be returned
|
||||
#
|
||||
# Example:
|
||||
# SET(MYLIST this that and the other)
|
||||
# SET(FILTS this that)
|
||||
#
|
||||
# FILTER_OUT("${FILTS}" "${MYLIST}" OUT)
|
||||
# MESSAGE("OUTPUT = ${OUT}")
|
||||
#
|
||||
# The output -
|
||||
# OUTPUT = and;the;other
|
||||
#
|
||||
SET(FOUT "")
|
||||
FOREACH(INP ${INPUTS})
|
||||
SET(FILTERED 0)
|
||||
FOREACH(FILT ${FILTERS})
|
||||
IF(${FILTERED} EQUAL 0)
|
||||
IF("${FILT}" STREQUAL "${INP}")
|
||||
SET(FILTERED 1)
|
||||
ENDIF("${FILT}" STREQUAL "${INP}")
|
||||
ENDIF(${FILTERED} EQUAL 0)
|
||||
ENDFOREACH(FILT ${FILTERS})
|
||||
IF(${FILTERED} EQUAL 0)
|
||||
SET(FOUT ${FOUT} ${INP})
|
||||
ENDIF(${FILTERED} EQUAL 0)
|
||||
ENDFOREACH(INP ${INPUTS})
|
||||
SET(${OUTPUT} ${FOUT})
|
||||
ENDMACRO(FILTER_OUT FILTERS INPUTS OUTPUT)
|
||||
FOREACH(FILT ${FILTERS})
|
||||
IF(${FILTERED} EQUAL 0)
|
||||
IF("${FILT}" STREQUAL "${INP}")
|
||||
SET(FILTERED 1)
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
ENDFOREACH()
|
||||
|
||||
IF(${FILTERED} EQUAL 0)
|
||||
SET(FOUT ${FOUT} ${INP})
|
||||
ENDIF()
|
||||
|
||||
MACRO(GET_HEADERS_EXTENSIONLESS DIR GLOB_PATTERN OUTPUT)
|
||||
FILE(GLOB TMP "${DIR}/${GLOB_PATTERN}" )
|
||||
#FOREACH(F ${TMP})
|
||||
# MESSAGE(STATUS "header-->${F}<--")
|
||||
#ENDFOREACH(F ${TMP})
|
||||
FILTER_OUT("${DIR}/CVS" "${TMP}" TMP)
|
||||
FILTER_OUT("${DIR}/cvs" "${TMP}" ${OUTPUT})
|
||||
FILTER_OUT("${DIR}/.svn" "${TMP}" ${OUTPUT})
|
||||
ENDMACRO(GET_HEADERS_EXTENSIONLESS DIR GLOB_PATTERN OUTPUT)
|
||||
|
||||
MACRO(ADD_DIRS_TO_ENV_VAR _VARNAME )
|
||||
FOREACH(_ADD_PATH ${ARGN})
|
||||
FILE(TO_NATIVE_PATH ${_ADD_PATH} _ADD_NATIVE)
|
||||
#SET(_CURR_ENV_PATH $ENV{PATH})
|
||||
#LIST(SET _CURR_ENV_PATH ${_ADD_PATH})
|
||||
#SET(ENV{PATH} ${_CURR_ENV_PATH})${_FILE}
|
||||
IF(WIN32)
|
||||
SET(ENV{${_VARNAME}} "$ENV{${_VARNAME}};${_ADD_NATIVE}")
|
||||
ELSE(WIN32)
|
||||
SET(ENV{${_VARNAME}} "$ENV{${_VARNAME}}:${_ADD_NATIVE}")
|
||||
ENDIF(WIN32)
|
||||
#MESSAGE(" env ${_VARNAME} --->$ENV{${_VARNAME}}<---")
|
||||
ENDFOREACH(_ADD_PATH)
|
||||
ENDMACRO(ADD_DIRS_TO_ENV_VAR _VARNAME )
|
||||
ENDFOREACH(INP ${INPUTS})
|
||||
SET(${OUTPUT} ${FOUT})
|
||||
ENDMACRO()
|
||||
|
||||
#---------------------------------------------------
|
||||
# MACRO CORRECT_PATH VAR PATH
|
||||
# corrects slashes in PATH to be cmake conformous ( / )
|
||||
# Macro: GET_HEADERS_EXTENSIONLESS DIR GLOB_PATTERN OUTPUT
|
||||
#
|
||||
#---------------------------------------------------
|
||||
MACRO(GET_HEADERS_EXTENSIONLESS DIR GLOB_PATTERN OUTPUT)
|
||||
FILE(GLOB TMP "${DIR}/${GLOB_PATTERN}" )
|
||||
#FOREACH(F ${TMP})
|
||||
# MESSAGE(STATUS "header-->${F}<--")
|
||||
#ENDFOREACH(F ${TMP})
|
||||
FILTER_OUT("${DIR}/CVS" "${TMP}" TMP)
|
||||
FILTER_OUT("${DIR}/cvs" "${TMP}" ${OUTPUT})
|
||||
FILTER_OUT("${DIR}/.svn" "${TMP}" ${OUTPUT})
|
||||
ENDMACRO()
|
||||
|
||||
#---------------------------------------------------
|
||||
# Macro: ADD_DIRS_TO_ENV_VAR _VARNAME
|
||||
#
|
||||
#---------------------------------------------------
|
||||
|
||||
MACRO(ADD_DIRS_TO_ENV_VAR _VARNAME )
|
||||
FOREACH(_ADD_PATH ${ARGN})
|
||||
FILE(TO_NATIVE_PATH ${_ADD_PATH} _ADD_NATIVE)
|
||||
#SET(_CURR_ENV_PATH $ENV{PATH})
|
||||
#LIST(SET _CURR_ENV_PATH ${_ADD_PATH})
|
||||
#SET(ENV{PATH} ${_CURR_ENV_PATH})${_FILE}
|
||||
IF(WIN32)
|
||||
SET(ENV{${_VARNAME}} "$ENV{${_VARNAME}};${_ADD_NATIVE}")
|
||||
ELSE()
|
||||
SET(ENV{${_VARNAME}} "$ENV{${_VARNAME}}:${_ADD_NATIVE}")
|
||||
ENDIF()
|
||||
#MESSAGE(" env ${_VARNAME} --->$ENV{${_VARNAME}}<---")
|
||||
ENDFOREACH()
|
||||
ENDMACRO()
|
||||
|
||||
#---------------------------------------------------
|
||||
# Macro: CORRECT_PATH VAR PATH
|
||||
#
|
||||
# Corrects slashes in PATH to be cmake conformous ( / )
|
||||
# and puts result in VAR
|
||||
#---------------------------------------------------
|
||||
|
||||
MACRO(CORRECT_PATH VAR PATH)
|
||||
SET(${VAR} ${PATH})
|
||||
IF(WIN32)
|
||||
STRING(REGEX REPLACE "/" "\\\\" ${VAR} "${PATH}")
|
||||
ENDIF(WIN32)
|
||||
ENDMACRO(CORRECT_PATH)
|
||||
IF(WIN32)
|
||||
STRING(REGEX REPLACE "/" "\\\\" ${VAR} "${PATH}")
|
||||
ENDIF()
|
||||
ENDMACRO()
|
||||
|
||||
#---------------------------------------------------
|
||||
# Macro: TARGET_LOCATIONS_SET_FILE FILE
|
||||
# TODO: Ok, this seems a bit ridiculuous.
|
||||
#---------------------------------------------------
|
||||
|
||||
MACRO(TARGET_LOCATIONS_SET_FILE FILE)
|
||||
SET(ACCUM_FILE_TARGETS ${FILE})
|
||||
FILE(WRITE ${ACCUM_FILE_TARGETS} "")
|
||||
ENDMACRO(TARGET_LOCATIONS_SET_FILE FILE)
|
||||
SET(ACCUM_FILE_TARGETS ${FILE})
|
||||
FILE(WRITE ${ACCUM_FILE_TARGETS} "")
|
||||
ENDMACRO()
|
||||
|
||||
#---------------------------------------------------
|
||||
# Macro: TARGET_LOCATIONS_ACCUM TARGET_NAME
|
||||
#
|
||||
#---------------------------------------------------
|
||||
|
||||
MACRO(TARGET_LOCATIONS_ACCUM TARGET_NAME)
|
||||
IF(ACCUM_FILE_TARGETS)
|
||||
IF(EXISTS ${ACCUM_FILE_TARGETS})
|
||||
GET_TARGET_PROPERTY(_FILE_LOCATION ${TARGET_NAME} LOCATION)
|
||||
FILE(APPEND ${ACCUM_FILE_TARGETS} "${_FILE_LOCATION};")
|
||||
#SET(_TARGETS_LIST ${_TARGETS_LIST} "${_FILE_LOCATION}" CACHE INTERNAL "lista dll")
|
||||
#MESSAGE("adding target -->${TARGET_NAME}<-- file -->${_FILE_LOCATION}<-- to list -->${_TARGETS_LIST}<--")
|
||||
#SET(ACCUM_FILE_TARGETS ${ACCUM_FILE_TARGETS} ${_FILE_LOCATION})
|
||||
ENDIF(EXISTS ${ACCUM_FILE_TARGETS})
|
||||
ENDIF(ACCUM_FILE_TARGETS)
|
||||
ENDMACRO(TARGET_LOCATIONS_ACCUM TARGET_NAME)
|
||||
IF(ACCUM_FILE_TARGETS)
|
||||
IF(EXISTS ${ACCUM_FILE_TARGETS})
|
||||
GET_TARGET_PROPERTY(_FILE_LOCATION ${TARGET_NAME} LOCATION)
|
||||
FILE(APPEND ${ACCUM_FILE_TARGETS} "${_FILE_LOCATION};")
|
||||
#SET(_TARGETS_LIST ${_TARGETS_LIST} "${_FILE_LOCATION}" CACHE INTERNAL "lista dll")
|
||||
#MESSAGE("adding target -->${TARGET_NAME}<-- file -->${_FILE_LOCATION}<-- to list -->${_TARGETS_LIST}<--")
|
||||
#SET(ACCUM_FILE_TARGETS ${ACCUM_FILE_TARGETS} ${_FILE_LOCATION})
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
ENDMACRO()
|
||||
|
||||
#---------------------------------------------------
|
||||
# Macro: TARGET_LOCATIONS_GET_LIST _VAR
|
||||
#
|
||||
#---------------------------------------------------
|
||||
|
||||
MACRO(TARGET_LOCATIONS_GET_LIST _VAR)
|
||||
IF(ACCUM_FILE_TARGETS)
|
||||
IF(EXISTS ${ACCUM_FILE_TARGETS})
|
||||
FILE(READ ${ACCUM_FILE_TARGETS} ${_VAR})
|
||||
ENDIF(EXISTS ${ACCUM_FILE_TARGETS})
|
||||
ENDIF(ACCUM_FILE_TARGETS)
|
||||
ENDMACRO(TARGET_LOCATIONS_GET_LIST _VAR)
|
||||
IF(ACCUM_FILE_TARGETS)
|
||||
IF(EXISTS ${ACCUM_FILE_TARGETS})
|
||||
FILE(READ ${ACCUM_FILE_TARGETS} ${_VAR})
|
||||
ENDIF(EXISTS ${ACCUM_FILE_TARGETS})
|
||||
ENDIF()
|
||||
ENDMACRO()
|
||||
|
||||
#---------------------------------------------------
|
||||
# Macro: FIND_DEPENDENCY DEPNAME INCLUDEFILE LIBRARY SEARCHPATHLIST
|
||||
#
|
||||
#---------------------------------------------------
|
||||
|
||||
MACRO(FIND_DEPENDENCY DEPNAME INCLUDEFILE LIBRARY SEARCHPATHLIST)
|
||||
MESSAGE(STATUS "searching ${DEPNAME} -->${INCLUDEFILE}<-->${LIBRARY}<-->${SEARCHPATHLIST}<--")
|
||||
|
||||
MESSAGE(STATUS "searching ${DEPNAME} -->${INCLUDEFILE}<-->${LIBRARY}<-->${SEARCHPATHLIST}<--")
|
||||
SET(MY_PATH_INCLUDE )
|
||||
SET(MY_PATH_LIB )
|
||||
SET(MY_PATH_BIN )
|
||||
|
||||
SET(MY_PATH_INCLUDE )
|
||||
SET(MY_PATH_LIB )
|
||||
SET(MY_PATH_BIN )
|
||||
FOREACH( MYPATH ${SEARCHPATHLIST} )
|
||||
SET(MY_PATH_INCLUDE ${MY_PATH_INCLUDE} ${MYPATH}/include)
|
||||
SET(MY_PATH_LIB ${MY_PATH_LIB} ${MYPATH}/lib)
|
||||
SET(MY_PATH_BIN ${MY_PATH_BIN} ${MYPATH}/bin)
|
||||
ENDFOREACH()
|
||||
|
||||
FOREACH( MYPATH ${SEARCHPATHLIST} )
|
||||
SET(MY_PATH_INCLUDE ${MY_PATH_INCLUDE} ${MYPATH}/include)
|
||||
SET(MY_PATH_LIB ${MY_PATH_LIB} ${MYPATH}/lib)
|
||||
SET(MY_PATH_BIN ${MY_PATH_BIN} ${MYPATH}/bin)
|
||||
ENDFOREACH( MYPATH ${SEARCHPATHLIST} )
|
||||
SET(MYLIBRARY "${LIBRARY}")
|
||||
SEPARATE_ARGUMENTS(MYLIBRARY)
|
||||
|
||||
SET(MYLIBRARY "${LIBRARY}")
|
||||
SEPARATE_ARGUMENTS(MYLIBRARY)
|
||||
#MESSAGE( " include paths: -->${MY_PATH_INCLUDE}<--")
|
||||
|
||||
#MESSAGE( " include paths: -->${MY_PATH_INCLUDE}<--")
|
||||
#MESSAGE( " ${DEPNAME}_INCLUDE_DIR --> ${${DEPNAME}_INCLUDE_DIR}<--")
|
||||
|
||||
#MESSAGE( " ${DEPNAME}_INCLUDE_DIR --> ${${DEPNAME}_INCLUDE_DIR}<--")
|
||||
|
||||
FIND_PATH("${DEPNAME}_INCLUDE_DIR" ${INCLUDEFILE}
|
||||
${MY_PATH_INCLUDE}
|
||||
)
|
||||
MARK_AS_ADVANCED("${DEPNAME}_INCLUDE_DIR")
|
||||
#MESSAGE( " ${DEPNAME}_INCLUDE_DIR --> ${${DEPNAME}_INCLUDE_DIR}<--")
|
||||
FIND_PATH("${DEPNAME}_INCLUDE_DIR" ${INCLUDEFILE}
|
||||
${MY_PATH_INCLUDE}
|
||||
)
|
||||
MARK_AS_ADVANCED("${DEPNAME}_INCLUDE_DIR")
|
||||
#MESSAGE( " ${DEPNAME}_INCLUDE_DIR --> ${${DEPNAME}_INCLUDE_DIR}<--")
|
||||
|
||||
FIND_LIBRARY("${DEPNAME}_LIBRARY"
|
||||
NAMES ${MYLIBRARY}
|
||||
PATHS ${MY_PATH_LIB}
|
||||
)
|
||||
IF(${DEPNAME}_LIBRARY)
|
||||
GET_FILENAME_COMPONENT(MYLIBNAME ${${DEPNAME}_LIBRARY} NAME_WE)
|
||||
GET_FILENAME_COMPONENT(MYBINPATH ${${DEPNAME}_LIBRARY} PATH)
|
||||
GET_FILENAME_COMPONENT(MYBINPATH ${MYBINPATH} PATH)
|
||||
SET(MYBINPATH "${MYBINPATH}/bin")
|
||||
IF(EXISTS ${MYBINPATH})
|
||||
SET(MYFOUND 0)
|
||||
FOREACH(MYPATH ${MY_ACCUM_BINARY_DEP})
|
||||
IF(MYPATH MATCHES ${MYBINPATH})
|
||||
SET(MYFOUND 1)
|
||||
#MESSAGE("found -->${MYPATH}<-->${MYBINPATH}<--")
|
||||
ENDIF(MYPATH MATCHES ${MYBINPATH})
|
||||
ENDFOREACH(MYPATH )
|
||||
IF(MYFOUND EQUAL 0)
|
||||
SET(MY_ACCUM_BINARY_DEP ${MY_ACCUM_BINARY_DEP} ${MYBINPATH})
|
||||
ENDIF(MYFOUND EQUAL 0)
|
||||
ENDIF(EXISTS ${MYBINPATH})
|
||||
#MESSAGE("${DEPNAME}_BINDEP searching -->${MYLIBNAME}${CMAKE_SHARED_MODULE_SUFFIX}<--in-->${MY_PATH_BIN}<--")
|
||||
# FIND_FILE("${DEPNAME}_BINDEP"
|
||||
# ${MYLIBNAME}${CMAKE_SHARED_MODULE_SUFFIX}
|
||||
# PATHS ${MY_PATH_BIN}
|
||||
# )
|
||||
# FIND_LIBRARY("${DEPNAME}_BINDEP"
|
||||
# NAMES ${MYLIBRARY}
|
||||
# PATHS ${MY_PATH_BIN}
|
||||
# )
|
||||
ENDIF(${DEPNAME}_LIBRARY)
|
||||
MARK_AS_ADVANCED("${DEPNAME}_LIBRARY")
|
||||
#MESSAGE( " ${DEPNAME}_LIBRARY --> ${${DEPNAME}_LIBRARY}<--")
|
||||
IF(${DEPNAME}_INCLUDE_DIR)
|
||||
IF(${DEPNAME}_LIBRARY)
|
||||
SET( ${DEPNAME}_FOUND "YES" )
|
||||
SET( ${DEPNAME}_LIBRARIES ${${DEPNAME}_LIBRARY} )
|
||||
ENDIF(${DEPNAME}_LIBRARY)
|
||||
ENDIF(${DEPNAME}_INCLUDE_DIR)
|
||||
ENDMACRO(FIND_DEPENDENCY DEPNAME INCLUDEFILE LIBRARY SEARCHPATHLIST)
|
||||
FIND_LIBRARY("${DEPNAME}_LIBRARY"
|
||||
NAMES ${MYLIBRARY}
|
||||
PATHS ${MY_PATH_LIB}
|
||||
)
|
||||
IF(${DEPNAME}_LIBRARY)
|
||||
GET_FILENAME_COMPONENT(MYLIBNAME ${${DEPNAME}_LIBRARY} NAME_WE)
|
||||
GET_FILENAME_COMPONENT(MYBINPATH ${${DEPNAME}_LIBRARY} PATH)
|
||||
GET_FILENAME_COMPONENT(MYBINPATH ${MYBINPATH} PATH)
|
||||
SET(MYBINPATH "${MYBINPATH}/bin")
|
||||
IF(EXISTS ${MYBINPATH})
|
||||
SET(MYFOUND 0)
|
||||
FOREACH(MYPATH ${MY_ACCUM_BINARY_DEP})
|
||||
IF(MYPATH MATCHES ${MYBINPATH})
|
||||
SET(MYFOUND 1)
|
||||
#MESSAGE("found -->${MYPATH}<-->${MYBINPATH}<--")
|
||||
ENDIF()
|
||||
ENDFOREACH()
|
||||
IF(MYFOUND EQUAL 0)
|
||||
SET(MY_ACCUM_BINARY_DEP ${MY_ACCUM_BINARY_DEP} ${MYBINPATH})
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
#MESSAGE("${DEPNAME}_BINDEP searching -->${MYLIBNAME}${CMAKE_SHARED_MODULE_SUFFIX}<--in-->${MY_PATH_BIN}<--")
|
||||
# FIND_FILE("${DEPNAME}_BINDEP"
|
||||
# ${MYLIBNAME}${CMAKE_SHARED_MODULE_SUFFIX}
|
||||
# PATHS ${MY_PATH_BIN}
|
||||
# )
|
||||
# FIND_LIBRARY("${DEPNAME}_BINDEP"
|
||||
# NAMES ${MYLIBRARY}
|
||||
# PATHS ${MY_PATH_BIN}
|
||||
# )
|
||||
ENDIF()
|
||||
|
||||
MARK_AS_ADVANCED("${DEPNAME}_LIBRARY")
|
||||
#MESSAGE( " ${DEPNAME}_LIBRARY --> ${${DEPNAME}_LIBRARY}<--")
|
||||
IF(${DEPNAME}_INCLUDE_DIR)
|
||||
IF(${DEPNAME}_LIBRARY)
|
||||
SET( ${DEPNAME}_FOUND "YES" )
|
||||
SET( ${DEPNAME}_LIBRARIES ${${DEPNAME}_LIBRARY} )
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
ENDMACRO()
|
||||
|
||||
#---------------------------------------------------
|
||||
# Macro: MACRO_MESSAGE MYTEXT
|
||||
#
|
||||
#---------------------------------------------------
|
||||
|
||||
#SET(MACRO_MESSAGE_DEBUG TRUE)
|
||||
MACRO(MACRO_MESSAGE MYTEXT)
|
||||
IF(MACRO_MESSAGE_DEBUG)
|
||||
MESSAGE("in file -->${CMAKE_CURRENT_LIST_FILE}<-- line -->${CMAKE_CURRENT_LIST_LINE}<-- message ${MYTEXT}")
|
||||
ELSE(MACRO_MESSAGE_DEBUG)
|
||||
ELSE()
|
||||
MESSAGE(STATUS "in file -->${CMAKE_CURRENT_LIST_FILE}<-- line -->${CMAKE_CURRENT_LIST_LINE}<-- message ${MYTEXT}")
|
||||
ENDIF(MACRO_MESSAGE_DEBUG)
|
||||
ENDMACRO(MACRO_MESSAGE MYTEXT)
|
||||
ENDIF()
|
||||
ENDMACRO()
|
||||
|
||||
|
||||
@@ -1,22 +1,22 @@
|
||||
IF(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")
|
||||
MESSAGE(FATAL_ERROR "Cannot find install manifest: \"@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt\"")
|
||||
ENDIF(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")
|
||||
MESSAGE(FATAL_ERROR "Cannot find install manifest: \"@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt\"")
|
||||
ENDIF()
|
||||
|
||||
FILE(READ "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt" files)
|
||||
STRING(REGEX REPLACE "\n" ";" files "${files}")
|
||||
|
||||
FOREACH(file ${files})
|
||||
MESSAGE(STATUS "Uninstalling \"${file}\"")
|
||||
IF(EXISTS "${file}")
|
||||
EXEC_PROGRAM(
|
||||
"@CMAKE_COMMAND@" ARGS "-E remove \"${file}\""
|
||||
OUTPUT_VARIABLE rm_out
|
||||
RETURN_VALUE rm_retval
|
||||
)
|
||||
IF("${rm_retval}" STREQUAL 0)
|
||||
ELSE("${rm_retval}" STREQUAL 0)
|
||||
MESSAGE(FATAL_ERROR "Problem when removing \"${file}\"")
|
||||
ENDIF("${rm_retval}" STREQUAL 0)
|
||||
ELSE(EXISTS "${file}")
|
||||
MESSAGE(STATUS "File \"${file}\" does not exist.")
|
||||
ENDIF(EXISTS "${file}")
|
||||
ENDFOREACH(file)
|
||||
MESSAGE(STATUS "Uninstalling \"${file}\"")
|
||||
IF(EXISTS "${file}")
|
||||
EXEC_PROGRAM(
|
||||
"@CMAKE_COMMAND@" ARGS "-E remove \"${file}\""
|
||||
OUTPUT_VARIABLE rm_out
|
||||
RETURN_VALUE rm_retval
|
||||
)
|
||||
IF(NOT "${rm_retval}" STREQUAL 0)
|
||||
MESSAGE(FATAL_ERROR "Problem when removing \"${file}\"")
|
||||
ENDIF()
|
||||
ELSE()
|
||||
MESSAGE(STATUS "File \"${file}\" does not exist.")
|
||||
ENDIF()
|
||||
ENDFOREACH()
|
||||
|
||||
Reference in New Issue
Block a user