+ Add macro to test and get OCC version

This commit is contained in:
wmayer 2014-08-10 18:52:28 +02:00
parent a05bf739c5
commit 5a33d95526

View File

@ -1,3 +1,5 @@
include (CheckCXXSourceRuns)
# ================================================================================
# == Macros, mostly for special targets ==========================================
@ -251,3 +253,61 @@ MACRO(SET_PYTHON_PREFIX_SUFFIX ProjectName)
set_target_properties(${ProjectName} PROPERTIES SUFFIX ".pyd")
endif(WIN32)
ENDMACRO(SET_PYTHON_PREFIX_SUFFIX)
MACRO(CHECK_MINIMUM_OCC_VERSION_HEX MinVersionHex)
set(CMAKE_REQUIRED_INCLUDES ${OCC_INCLUDE_DIR})
unset(OCC_MIN_VERSION CACHE)
set(OCC_CHECK_VERSION 0x060600)
CHECK_CXX_SOURCE_RUNS("
#include <Standard_Version.hxx>
int main ()
{
return OCC_VERSION_HEX >= ${MinVersionHex} ? 0 : -1;
}
"
OCC_MIN_VERSION)
ENDMACRO(CHECK_MINIMUM_OCC_VERSION_HEX)
MACRO(GET_OCC_VERSION_HEX)
# clear them to run the tests for each configure step
unset(OCC_MAJOR CACHE)
unset(OCC_MAJOR_COMPILED CACHE)
unset(OCC_MAJOR_EXITCODE CACHE)
unset(OCC_MINOR CACHE)
unset(OCC_MINOR_COMPILED CACHE)
unset(OCC_MINOR_EXITCODE CACHE)
unset(OCC_MICRO CACHE)
unset(OCC_MICRO_COMPILED CACHE)
unset(OCC_MICRO_EXITCODE CACHE)
set(CMAKE_REQUIRED_INCLUDES ${OCC_INCLUDE_DIR})
CHECK_CXX_SOURCE_RUNS("
#include <Standard_Version.hxx>
int main ()
{
return OCC_VERSION_MAJOR;
}
"
OCC_MAJOR)
CHECK_CXX_SOURCE_RUNS("
#include <Standard_Version.hxx>
int main ()
{
return OCC_VERSION_MINOR;
}
"
OCC_MINOR)
CHECK_CXX_SOURCE_RUNS("
#include <Standard_Version.hxx>
int main ()
{
return OCC_VERSION_MAINTENANCE;
}
"
OCC_MICRO)
unset(OCC_VERSION_HEX CACHE)
if (OCC_MAJOR_COMPILED AND OCC_MINOR_COMPILED AND OCC_MICRO_COMPILED)
set (OCC_VERSION_HEX "0x0${OCC_MAJOR_EXITCODE}0${OCC_MINOR_EXITCODE}0${OCC_MICRO_EXITCODE}")
endif()
ENDMACRO(GET_OCC_VERSION_HEX)