cmake_minimum_required ( VERSION 2.6)
+set (CMAKE_SUPPRESS_REGENERATION TRUE)
+
if (NOT BUILD_CONFIGURATION)
set(BUILD_CONFIGURATION "Release" CACHE STRING "Build type of OCCT" FORCE)
SET_PROPERTY(CACHE BUILD_CONFIGURATION PROPERTY STRINGS Release Debug RelWithDebInfo)
add_definitions(/fp:precise)
endif()
-# set compiler short name and choose SSE2 option for appropriate MSVC compilers
-if (DEFINED MSVC70)
- SET(COMPILER vc7)
-elseif (DEFINED MSVC80)
- SET(COMPILER vc8)
- if (${COMPILER_BITNESS} STREQUAL 32)
- add_definitions(/arch:SSE2)
- endif()
-elseif (DEFINED MSVC90)
- SET(COMPILER vc9)
+# choose SSE2 option for appropriate MSVC compilers
+if (MSVC80 OR MSVC90 OR MSVC10)
if (${COMPILER_BITNESS} STREQUAL 32)
add_definitions(/arch:SSE2)
endif()
-elseif (DEFINED MSVC10)
- SET(COMPILER vc10)
- if (${COMPILER_BITNESS} STREQUAL 32)
- add_definitions(/arch:SSE2)
+endif()
+
+# set compiler short name
+if (MSVC)
+ if (MSVC70)
+ set (COMPILER vc7)
+ elseif (MSVC80)
+ set (COMPILER vc8)
+ elseif (MSVC90)
+ set (COMPILER vc9)
+ elseif (MSVC10)
+ set (COMPILER vc10)
+ elseif (MSVC11)
+ set (COMPILER vc11)
+ elseif (MSVC12)
+ set (COMPILER vc12)
endif()
-elseif (DEFINED MSVC11)
- SET(COMPILER vc11)
+elseif (DEFINED CMAKE_COMPILER_IS_GNUCC)
+ set (COMPILER gcc)
+elseif (DEFINED CMAKE_COMPILER_IS_GNUCXX)
+ set (COMPILER gxx)
+elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
+ set (COMPILER clang)
+elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Intel")
+ set (COMPILER icc)
else()
- SET(COMPILER ${CMAKE_GENERATOR})
+ set (COMPILER ${CMAKE_GENERATOR})
+ string (REGEX REPLACE " " "" COMPILER ${COMPILER})
endif()
+
if (WIN32)
SET(OS_WITH_BIT "win${COMPILER_BITNESS}")
elseif(APPLE)
if(WIN32)
add_definitions(/DWNT -wd4996)
elseif(APPLE)
- add_definitions(-fexceptions -fPIC -DOCC_CONVERT_SIGNALS -DHAVE_WOK_CONFIG_H -DHAVE_CONFIG_H)
+ add_definitions(-fexceptions -fPIC -DOCC_CONVERT_SIGNALS)
else()
- add_definitions(-fexceptions -fPIC -DOCC_CONVERT_SIGNALS -DHAVE_WOK_CONFIG_H -DHAVE_CONFIG_H -DLIN)
+ add_definitions(-fexceptions -fPIC -DOCC_CONVERT_SIGNALS -DLIN)
endif()
# enable structured exceptions for MSVC
IF(3RDPARTY_${PRODUCT_NAME}_DIR)
IF("${3RDPARTY_${PRODUCT_NAME}_INCLUDE_DIR}" STREQUAL "" OR CHANGES_ARE_NEEDED OR "${3RDPARTY_${PRODUCT_NAME}_INCLUDE_DIR}" STREQUAL "3RDPARTY_${PRODUCT_NAME}_INCLUDE_DIR-NOTFOUND")
SET(3RDPARTY_${PRODUCT_NAME}_INCLUDE_DIR "3RDPARTY_${PRODUCT_NAME}_INCLUDE_DIR-NOTFOUND" CACHE FILEPATH "Directory contains headers of the ${PRODUCT_NAME} product" FORCE)
- FIND_PATH(3RDPARTY_${PRODUCT_NAME}_INCLUDE_DIR ${HEADER_NAME} PATHS "${3RDPARTY_${PRODUCT_NAME}_DIR}/include" NO_DEFAULT_PATH)
+ if ("${PRODUCT_NAME}" STREQUAL "FREETYPE")
+ FIND_PATH(3RDPARTY_FREETYPE_INCLUDE_DIR ${HEADER_NAME} PATHS "${3RDPARTY_FREETYPE_DIR}/include" "${3RDPARTY_FREETYPE_DIR}/include/freetype2" NO_DEFAULT_PATH)
+ else()
+ FIND_PATH(3RDPARTY_${PRODUCT_NAME}_INCLUDE_DIR ${HEADER_NAME} PATHS "${3RDPARTY_${PRODUCT_NAME}_DIR}/include" NO_DEFAULT_PATH)
+ endif()
ENDIF()
IF("${3RDPARTY_${PRODUCT_NAME}_LIBRARY}" STREQUAL "" OR CHANGES_ARE_NEEDED OR "${3RDPARTY_${PRODUCT_NAME}_LIBRARY}" STREQUAL "3RDPARTY_${PRODUCT_NAME}_LIBRARY-NOTFOUND")
# FREETYPE
THIRDPARTY_PRODUCT("FREETYPE" "ft2build.h" "freetype${3RDPARTY_BUILD_SUFFIX}")
-IF("${3RDPARTY_FREETYPE_INCLUDE_DIR}" STREQUAL "" OR "${3RDPARTY_FREETYPE_INCLUDE_DIR}" STREQUAL "3RDPARTY_FREETYPE_INCLUDE_DIR-NOTFOUND")
-
-ELSEIF(EXISTS "${3RDPARTY_FREETYPE_INCLUDE_DIR}/freetype2/")
- SET(3RDPARTY_INCLUDE_DIRS "${3RDPARTY_INCLUDE_DIRS};${3RDPARTY_FREETYPE_INCLUDE_DIR}/freetype2")
-ENDIF()
-
# FREEIMAGE
IF(USE_FREEIMAGE)
ADD_DEFINITIONS(-DHAVE_FREEIMAGE)
# add required subdirs
FOREACH(UNSUBDIR ${UNSUBDIRS})
MESSAGE(STATUS "${UNSUBDIR}")
- subdirs(${TK_ROOT_DIR}/${UNSUBDIR})
+ ADD_SUBDIRECTORY (${TK_ROOT_DIR}/${UNSUBDIR})
ENDFOREACH()
ENDIF()
# samples do not support patch usage
IF (BUILD_Samples)
- SET (CMAKE_MFC_FLAG 2)
SET (OCCT_ROOT ${CMAKE_SOURCE_DIR})
SET (MFC_STANDARD_SAMPLES_DIR ${OCCT_ROOT}/samples/mfc/standard)
SET (COMMON_WINMAIN_FILE ${MFC_STANDARD_SAMPLES_DIR}/Common/Winmain.cpp)
- subdirs(samples/mfc/standard/mfcsample)
- subdirs(samples/mfc/standard/01_Geometry)
- subdirs(samples/mfc/standard/02_Modeling)
- subdirs(samples/mfc/standard/03_Viewer2d)
- subdirs(samples/mfc/standard/04_Viewer3d)
- subdirs(samples/mfc/standard/05_ImportExport)
- subdirs(samples/mfc/standard/06_Ocaf)
- subdirs(samples/mfc/standard/07_Triangulation)
- subdirs(samples/mfc/standard/08_HLR)
- subdirs(samples/mfc/standard/09_Animation)
- subdirs(samples/mfc/standard/10_Convert)
+ ADD_SUBDIRECTORY (samples/mfc/standard/mfcsample)
+ ADD_SUBDIRECTORY (samples/mfc/standard/01_Geometry)
+ ADD_SUBDIRECTORY (samples/mfc/standard/02_Modeling)
+ ADD_SUBDIRECTORY (samples/mfc/standard/03_Viewer2d)
+ ADD_SUBDIRECTORY (samples/mfc/standard/04_Viewer3d)
+ ADD_SUBDIRECTORY (samples/mfc/standard/05_ImportExport)
+ ADD_SUBDIRECTORY (samples/mfc/standard/06_Ocaf)
+ ADD_SUBDIRECTORY (samples/mfc/standard/07_Triangulation)
+ ADD_SUBDIRECTORY (samples/mfc/standard/08_HLR)
+ ADD_SUBDIRECTORY (samples/mfc/standard/09_Animation)
+ ADD_SUBDIRECTORY (samples/mfc/standard/10_Convert)
ENDIF()