mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-04-04 18:06:22 +03:00
CMake scripts are corrected to do perform search of libs and dlls of third-party libraries even for static builds of OCCT. Treatment of errors in this case is relaxed: not found DLLs are reported as warnings, and not found libs as warning for static build, and continuable error for shared build. Code of samples is corrected to allow building with OCCT linked statically. Implementation of main application class is corrected to ensure that initialization is done after all global objects are created. Note however that samples still fails to start for unclear reason (creation of MFC frame window fails).
203 lines
10 KiB
CMake
203 lines
10 KiB
CMake
cmake_minimum_required (VERSION 2.6)
|
|
|
|
project (mfcsample)
|
|
|
|
add_definitions(-DWINVER=0x0501 -D_AFXEXT -DUNICODE -D_UNICODE)
|
|
|
|
if (NOT BUILD_SHARED_LIBS AND WIN32)
|
|
add_definitions ("-DOCCT_STATIC_BUILD")
|
|
endif()
|
|
|
|
set (CMAKE_MFC_FLAG 2)
|
|
|
|
# mfcsample
|
|
set (mfcsample_SOURCE_FILES ${MFC_STANDARD_SAMPLES_DIR}/mfcsample/src/mfcsample.cpp
|
|
${MFC_STANDARD_SAMPLES_DIR}/mfcsample/src/StdAfx.cpp )
|
|
|
|
SET (MFC_STANDARD_COMMON_SAMPLES_DIR "${MFC_STANDARD_SAMPLES_DIR}/Common")
|
|
set (COMMON_SOURCE_FILES ${MFC_STANDARD_COMMON_SAMPLES_DIR}/AISDialogs.cpp
|
|
${MFC_STANDARD_COMMON_SAMPLES_DIR}/OCC_2dDoc.cpp
|
|
${MFC_STANDARD_COMMON_SAMPLES_DIR}/OCC_2dChildFrame.cpp
|
|
${MFC_STANDARD_COMMON_SAMPLES_DIR}/OCC_2dView.cpp
|
|
${MFC_STANDARD_COMMON_SAMPLES_DIR}/OCC_3dBaseDoc.cpp
|
|
${MFC_STANDARD_COMMON_SAMPLES_DIR}/OCC_App.cpp
|
|
${MFC_STANDARD_COMMON_SAMPLES_DIR}/OCC_3dDoc.cpp
|
|
${MFC_STANDARD_COMMON_SAMPLES_DIR}/OCC_3dChildFrame.cpp
|
|
${MFC_STANDARD_COMMON_SAMPLES_DIR}/OCC_3dView.cpp
|
|
${MFC_STANDARD_COMMON_SAMPLES_DIR}/OCC_BaseDoc.cpp
|
|
${MFC_STANDARD_COMMON_SAMPLES_DIR}/OCC_BaseChildFrame.cpp
|
|
${MFC_STANDARD_COMMON_SAMPLES_DIR}/OCC_BaseView.cpp
|
|
${MFC_STANDARD_COMMON_SAMPLES_DIR}/OCC_MainFrame.cpp
|
|
${MFC_STANDARD_COMMON_SAMPLES_DIR}/OCC_StereoConfigDlg.cpp
|
|
${MFC_STANDARD_COMMON_SAMPLES_DIR}/ParamsFacesPage.cpp
|
|
${MFC_STANDARD_COMMON_SAMPLES_DIR}/ResultDialog.cpp
|
|
${MFC_STANDARD_COMMON_SAMPLES_DIR}/User_Cylinder.cxx
|
|
${MFC_STANDARD_COMMON_SAMPLES_DIR}/ColoredMeshDlg.cpp
|
|
${MFC_STANDARD_COMMON_SAMPLES_DIR}/DimensionDlg.cpp
|
|
${MFC_STANDARD_COMMON_SAMPLES_DIR}/LengthParamsEdgePage.cpp
|
|
${MFC_STANDARD_COMMON_SAMPLES_DIR}/LengthParamsVerticesPage.cpp
|
|
${MFC_STANDARD_COMMON_SAMPLES_DIR}/RadiusParamsPage.cpp
|
|
${MFC_STANDARD_COMMON_SAMPLES_DIR}/LengthParamsEdgesPage.cpp
|
|
${MFC_STANDARD_COMMON_SAMPLES_DIR}/LengthParamsVerticesPage.cpp
|
|
${MFC_STANDARD_COMMON_SAMPLES_DIR}/AngleParamsVerticesPage.cpp)
|
|
|
|
# Common ImportExport
|
|
set (COMMON_IE_DIR ${MFC_STANDARD_COMMON_SAMPLES_DIR}/ImportExport)
|
|
set (COMMON_IE_HEADER_FILES ${COMMON_IE_DIR}/ImportExport.h
|
|
${COMMON_IE_DIR}/SaveSTEPDlg.h )
|
|
set (COMMON_IE_SOURCE_FILES ${COMMON_IE_DIR}/ImportExport.cpp
|
|
${COMMON_IE_DIR}/SaveSTEPDlg.cpp )
|
|
|
|
# Common ISession2D
|
|
set (COMMON_ISESSION2D_DIR ${MFC_STANDARD_COMMON_SAMPLES_DIR}/ISession2D)
|
|
set (COMMON_ISESSION2D_HEADER_FILES ${COMMON_ISESSION2D_DIR}/ISession2D_Shape.h )
|
|
set (COMMON_ISESSION2D_SOURCE_FILES ${COMMON_ISESSION2D_DIR}/ISession2D_Shape.cpp )
|
|
|
|
# Common Primitive
|
|
set (COMMON_PRIMITIVE_DIR ${MFC_STANDARD_COMMON_SAMPLES_DIR}/Primitive)
|
|
set (COMMON_PRIMITIVE_HEADER_FILES ${COMMON_PRIMITIVE_DIR}/Sample2D_Face.h
|
|
${COMMON_PRIMITIVE_DIR}/Sample2D_Image.h
|
|
${COMMON_PRIMITIVE_DIR}/Sample2D_Markers.h )
|
|
set (COMMON_PRIMITIVE_SOURCE_FILES ${COMMON_PRIMITIVE_DIR}/Sample2D_Face.cpp
|
|
${COMMON_PRIMITIVE_DIR}/Sample2D_Image.cpp
|
|
${COMMON_PRIMITIVE_DIR}/Sample2D_Markers.cpp )
|
|
|
|
# Common Resource2D
|
|
set (COMMON_RESOURCE2D_DIR ${MFC_STANDARD_COMMON_SAMPLES_DIR}/Resource2D)
|
|
set (COMMON_RESOURCE2D_HEADER_FILES ${COMMON_RESOURCE2D_DIR}/CircularGrid.h
|
|
${COMMON_RESOURCE2D_DIR}/RectangularGrid.h )
|
|
set (COMMON_RESOURCE2D_SOURCE_FILES ${COMMON_RESOURCE2D_DIR}/CircularGrid.cpp
|
|
${COMMON_RESOURCE2D_DIR}/RectangularGrid.cpp )
|
|
|
|
# Common headers
|
|
set (COMMON_HEADER_FILES ${MFC_STANDARD_COMMON_SAMPLES_DIR}/AISDialogs.h
|
|
${MFC_STANDARD_COMMON_SAMPLES_DIR}/OCC_2dDoc.h
|
|
${MFC_STANDARD_COMMON_SAMPLES_DIR}/OCC_2dChildFrame.h
|
|
${MFC_STANDARD_COMMON_SAMPLES_DIR}/OCC_2dView.h
|
|
${MFC_STANDARD_COMMON_SAMPLES_DIR}/OCC_3dBaseDoc.h
|
|
${MFC_STANDARD_COMMON_SAMPLES_DIR}/OCC_App.h
|
|
${MFC_STANDARD_COMMON_SAMPLES_DIR}/OCC_3dDoc.h
|
|
${MFC_STANDARD_COMMON_SAMPLES_DIR}/OCC_3dChildFrame.h
|
|
${MFC_STANDARD_COMMON_SAMPLES_DIR}/OCC_3dView.h
|
|
${MFC_STANDARD_COMMON_SAMPLES_DIR}/OCC_BaseDoc.h
|
|
${MFC_STANDARD_COMMON_SAMPLES_DIR}/OCC_BaseChildFrame.h
|
|
${MFC_STANDARD_COMMON_SAMPLES_DIR}/OCC_BaseView.h
|
|
${MFC_STANDARD_COMMON_SAMPLES_DIR}/OCC_MainFrame.h
|
|
${MFC_STANDARD_COMMON_SAMPLES_DIR}/OCC_StereoConfigDlg.h
|
|
${MFC_STANDARD_COMMON_SAMPLES_DIR}/ParamsFacesPage.h
|
|
${MFC_STANDARD_COMMON_SAMPLES_DIR}/ResultDialog.h
|
|
${MFC_STANDARD_COMMON_SAMPLES_DIR}/User_Cylinder.hxx
|
|
${MFC_STANDARD_COMMON_SAMPLES_DIR}/ColoredMeshDlg.h
|
|
${MFC_STANDARD_COMMON_SAMPLES_DIR}/DimensionDlg.h
|
|
${MFC_STANDARD_COMMON_SAMPLES_DIR}/LengthParamsEdgePage.h
|
|
${MFC_STANDARD_COMMON_SAMPLES_DIR}/LengthParamsVerticesPage.h
|
|
${MFC_STANDARD_COMMON_SAMPLES_DIR}/RadiusParamsPage.h
|
|
${MFC_STANDARD_COMMON_SAMPLES_DIR}/LengthParamsEdgesPage.h
|
|
${MFC_STANDARD_COMMON_SAMPLES_DIR}/LengthParamsVerticesPage.h
|
|
${MFC_STANDARD_COMMON_SAMPLES_DIR}/AngleParamsVerticesPage.h)
|
|
|
|
|
|
# Common resources
|
|
set (COMMON_RESOURCE_DIR ${MFC_STANDARD_COMMON_SAMPLES_DIR}/res)
|
|
set (COMMON_RESOURCE_FILES ${COMMON_RESOURCE_DIR}/2dChildFrameTB.bmp
|
|
${COMMON_RESOURCE_DIR}/2dType.ico
|
|
${COMMON_RESOURCE_DIR}/3dChildFrameTB.bmp
|
|
${COMMON_RESOURCE_DIR}/3dType.ico
|
|
${COMMON_RESOURCE_DIR}/AIS_TB.bmp
|
|
${COMMON_RESOURCE_DIR}/coloredm.bmp
|
|
${COMMON_RESOURCE_DIR}/MainFrame.ico
|
|
${COMMON_RESOURCE_DIR}/occ_logo.bmp
|
|
${COMMON_RESOURCE_DIR}/OCC_Resource.rc)
|
|
|
|
# groups in the VS solution
|
|
source_group ( "Header Files" FILES ${COMMON_HEADER_FILES}
|
|
${COMMON_IE_HEADER_FILES}
|
|
${COMMON_PRIMITIVE_HEADER_FILES}
|
|
${COMMON_RESOURCE2D_HEADER_FILES}
|
|
${COMMON_ISESSION2D_HEADER_FILES})
|
|
|
|
source_group ("Source Files" FILES ${mfcsample_SOURCE_FILES}
|
|
${COMMON_SOURCE_FILES}
|
|
${COMMON_IE_SOURCE_FILES}
|
|
${COMMON_PRIMITIVE_SOURCE_FILES}
|
|
${COMMON_RESOURCE2D_SOURCE_FILES}
|
|
${COMMON_ISESSION2D_SOURCE_FILES})
|
|
|
|
source_group ( "Resource Files" FILES ${COMMON_RESOURCE_FILES})
|
|
|
|
# mfcsample library
|
|
add_library ( mfcsample ${mfcsample_SOURCE_FILES}
|
|
${COMMON_HEADER_FILES}
|
|
${COMMON_SOURCE_FILES}
|
|
${COMMON_IE_HEADER_FILES}
|
|
${COMMON_IE_SOURCE_FILES}
|
|
${COMMON_PRIMITIVE_HEADER_FILES}
|
|
${COMMON_PRIMITIVE_SOURCE_FILES}
|
|
${COMMON_RESOURCE2D_HEADER_FILES}
|
|
${COMMON_RESOURCE2D_SOURCE_FILES}
|
|
${COMMON_ISESSION2D_HEADER_FILES}
|
|
${COMMON_ISESSION2D_SOURCE_FILES}
|
|
${COMMON_RESOURCE_FILES})
|
|
|
|
set_property (TARGET mfcsample PROPERTY FOLDER Samples)
|
|
|
|
if (SINGLE_GENERATOR)
|
|
install (TARGETS mfcsample
|
|
RUNTIME DESTINATION "${INSTALL_DIR_BIN}"
|
|
ARCHIVE DESTINATION "${INSTALL_DIR_LIB}"
|
|
LIBRARY DESTINATION "${INSTALL_DIR_LIB}")
|
|
else()
|
|
install (TARGETS mfcsample
|
|
CONFIGURATIONS Release RelWithDebInfo
|
|
RUNTIME DESTINATION "${INSTALL_DIR_BIN}"
|
|
ARCHIVE DESTINATION "${INSTALL_DIR_LIB}"
|
|
LIBRARY DESTINATION "${INSTALL_DIR_LIB}")
|
|
install (TARGETS mfcsample
|
|
CONFIGURATIONS Debug
|
|
RUNTIME DESTINATION "${INSTALL_DIR_BIN}d"
|
|
ARCHIVE DESTINATION "${INSTALL_DIR_LIB}d"
|
|
LIBRARY DESTINATION "${INSTALL_DIR_LIB}d")
|
|
endif()
|
|
|
|
include_directories( ${CMAKE_BINARY_DIR}/inc
|
|
${MFC_STANDARD_COMMON_SAMPLES_DIR}
|
|
${COMMON_IE_DIR}
|
|
${COMMON_ISESSION2D_DIR}
|
|
${COMMON_PRIMITIVE_DIR}
|
|
${COMMON_RESOURCE2D_DIR})
|
|
|
|
# OCCT libraries for using
|
|
set (mfcsample_USED_LIBS TKVRML
|
|
TKSTL
|
|
TKBRep
|
|
TKIGES
|
|
TKShHealing
|
|
TKSTEP
|
|
TKSTEPBase
|
|
TKSTEP209
|
|
TKSTEPAttr
|
|
TKXSBase
|
|
TKBool
|
|
TKBO
|
|
TKCAF
|
|
TKCDF
|
|
TKernel
|
|
TKFeat
|
|
TKFillet
|
|
TKG2d
|
|
TKG3d
|
|
TKGeomAlgo
|
|
TKGeomBase
|
|
TKHLR
|
|
TKMath
|
|
TKOffset
|
|
TKOpenGl
|
|
TKPrim
|
|
TKService
|
|
TKTopAlgo
|
|
TKMesh
|
|
TKV3d
|
|
${CSF_OpenGlLibs})
|
|
|
|
target_link_libraries (mfcsample ${mfcsample_USED_LIBS})
|