Compare commits
367 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
1b4f164625 | ||
|
bc001a4030 | ||
|
68b0769935 | ||
|
a9bdd54d1d | ||
|
107f794fc9 | ||
|
505e241c8a | ||
|
0af424c23c | ||
|
ec96437207 | ||
|
632175c3a8 | ||
|
dfde2a3315 | ||
|
68ef63f9f3 | ||
|
c0a1a35fac | ||
|
501d0d386a | ||
|
2d2b3d53b7 | ||
|
e87d0237d8 | ||
|
85719f0ef9 | ||
|
d51a0ff64a | ||
|
f6d4c5cf8d | ||
|
b2ec0b4da5 | ||
|
6fd4ffd9eb | ||
|
b60e8432dd | ||
|
c48e2889cd | ||
|
14c4193d11 | ||
|
973d410ea4 | ||
|
1406e955b3 | ||
|
33cc703b16 | ||
|
003281f4e7 | ||
|
0bd575a716 | ||
|
aeee70d353 | ||
|
e473b95fe9 | ||
|
450c83adcf | ||
|
4fecc3651c | ||
|
5652dc6272 | ||
|
769a2e88e0 | ||
|
353e6fa0cf | ||
|
2d0621bf94 | ||
|
90271a9003 | ||
|
83f32108f6 | ||
|
521efa926d | ||
|
bbdf3b5c66 | ||
|
7868210dbc | ||
|
ea6e537889 | ||
|
811d6b7d4a | ||
|
3b77eff652 | ||
|
431d0f181e | ||
|
f1b2eddc0f | ||
|
e8b9db57cd | ||
|
2967828dbf | ||
|
e45b5ff7f2 | ||
|
8b956afe8e | ||
|
f80842e34c | ||
|
19e7092d1b | ||
|
1b9f3f674e | ||
|
63c71e2f68 | ||
|
20aa0d3fdd | ||
|
f1191d3099 | ||
|
4d597f3e2f | ||
|
3b6ffeaca7 | ||
|
176a795920 | ||
|
c58055adeb | ||
|
093a3fe5bb | ||
|
7581b642af | ||
|
6c4c45b0f9 | ||
|
4954e4970c | ||
|
32e849ebc9 | ||
|
e99816df7f | ||
|
7a280da946 | ||
|
b672545674 | ||
|
5c09f8e016 | ||
|
9070a59fce | ||
|
370101f340 | ||
|
9ed6494b47 | ||
|
50258e776a | ||
|
56689b2700 | ||
|
05aa616d6d | ||
|
dc858f4c5a | ||
|
e6afb53983 | ||
|
0d0c99de4d | ||
|
7a033414d5 | ||
|
f40644350e | ||
|
2eacd0b872 | ||
|
e525fd6ad2 | ||
|
f48cb55d33 | ||
|
15b2583e69 | ||
|
0da0275c18 | ||
|
b66f375869 | ||
|
6d1e872b4d | ||
|
e44b0af456 | ||
|
224f48fa0e | ||
|
18c066908f | ||
|
8ce97bc90b | ||
|
97f3782bb0 | ||
|
f87817bc03 | ||
|
9f984417b1 | ||
|
dace4784d1 | ||
|
c4fa1c2c62 | ||
|
e6ae74fd42 | ||
|
ea3193f52e | ||
|
bf961e3c29 | ||
|
d3dadd2392 | ||
|
d76b39abf1 | ||
|
7c441da0d1 | ||
|
e59839c8c2 | ||
|
c13de40280 | ||
|
4cf17e1c04 | ||
|
d1d3e057ca | ||
|
6662fe6313 | ||
|
9775fa6110 | ||
|
0c63f2f8b9 | ||
|
cfece3ef2e | ||
|
b0d96eb753 | ||
|
478ad1d19e | ||
|
1a0dfc1bfd | ||
|
59edf905b1 | ||
|
92345dc222 | ||
|
baaacd4683 | ||
|
ff2bd6ef48 | ||
|
8cc8a6925d | ||
|
cbdcce0d64 | ||
|
f114566d01 | ||
|
4d901cde7c | ||
|
650efe05be | ||
|
2a4611e19f | ||
|
472634fa06 | ||
|
2b3e2b780d | ||
|
06bc0a59fa | ||
|
89029d3342 | ||
|
624f732fb4 | ||
|
e4780e5287 | ||
|
25dfc507be | ||
|
f542b7bbf1 | ||
|
31211c6cfe | ||
|
2df785d7f1 | ||
|
61887a4ade | ||
|
9f2d973602 | ||
|
0f358da3e3 | ||
|
4eaaf9d812 | ||
|
952886f056 | ||
|
2dad173d8b | ||
|
712879c808 | ||
|
4e1bc39a81 | ||
|
2b73a1d19f | ||
|
0e9fe060f3 | ||
|
f63101c984 | ||
|
b09447ed89 | ||
|
7a59f4ce9f | ||
|
f2a88e54e8 | ||
|
c5ec75471a | ||
|
44fae8b193 | ||
|
810b672ff3 | ||
|
ec7c343f23 | ||
|
acc909a893 | ||
|
7755fe829e | ||
|
bda0b631c8 | ||
|
6cfc06f00d | ||
|
10ce324694 | ||
|
1209c1b923 | ||
|
465e686173 | ||
|
0577ae8ca4 | ||
|
9bcfd6f649 | ||
|
0fdbd10b91 | ||
|
e22105a97c | ||
|
77a11d3df1 | ||
|
400af1bcf6 | ||
|
5da3dfdf08 | ||
|
3b1a2e5158 | ||
|
731c9b5bc0 | ||
|
a8232603a0 | ||
|
0c5a6d479b | ||
|
b3d20c7f46 | ||
|
96fffdc609 | ||
|
5c20836e0d | ||
|
09f30297f4 | ||
|
ad03c23449 | ||
|
0a40a30da5 | ||
|
a20cce397a | ||
|
9f951ebc44 | ||
|
0f0f0c06d1 | ||
|
51663cb434 | ||
|
b6826918fe | ||
|
8613985b2a | ||
|
decdee7d3f | ||
|
06e06389ea | ||
|
4e66868ad7 | ||
|
a061150b0b | ||
|
1ef277c369 | ||
|
4b3d6eb1d2 | ||
|
09a4804444 | ||
|
ac0cdacd09 | ||
|
471b22dea3 | ||
|
eadea5ea03 | ||
|
24542bc056 | ||
|
5200cc4aa3 | ||
|
f838dac48b | ||
|
404c893694 | ||
|
0a8630615d | ||
|
3a4a396251 | ||
|
f79b19a17e | ||
|
640d5fe219 | ||
|
dbe54d10f9 | ||
|
4dba155d8e | ||
|
fcfda0392f | ||
|
4d9733588f | ||
|
2a79a1aeb4 | ||
|
20ef5652b7 | ||
|
fe1d4d6cff | ||
|
291fced1e6 | ||
|
a699468165 | ||
|
51db017972 | ||
|
483ce1bd89 | ||
|
b4327ba8df | ||
|
a148c938b0 | ||
|
8013367c92 | ||
|
b443d53628 | ||
|
a8b5267725 | ||
|
851f870162 | ||
|
e3cb774f2e | ||
|
89aebdea8d | ||
|
168077a6dc | ||
|
d96fd48ee5 | ||
|
7dd37838f7 | ||
|
8f16a18454 | ||
|
1dd28279c8 | ||
|
cde381c4e2 | ||
|
10f55672df | ||
|
aff1875311 | ||
|
bb2cf06962 | ||
|
946e65b9c5 | ||
|
7fbac3c240 | ||
|
2fb5823d31 | ||
|
ce73cfd073 | ||
|
4208cf1872 | ||
|
b3eab8efc3 | ||
|
5299b92ba1 | ||
|
41aa3c3d5d | ||
|
f9ac4dc9ab | ||
|
ebcbd82410 | ||
|
45b9409aa4 | ||
|
d673da182b | ||
|
f411f94fac | ||
|
383c6c9fb2 | ||
|
8511408796 | ||
|
c894a5fdfc | ||
|
6dd6e5c758 | ||
|
f9f740d6b0 | ||
|
564c82b4f2 | ||
|
16c93d97eb | ||
|
ef9a9362ae | ||
|
8022338566 | ||
|
f3495b0139 | ||
|
6fe58c66d9 | ||
|
45d0af05b9 | ||
|
197cddcfc9 | ||
|
424392e0d8 | ||
|
eca0539260 | ||
|
326b3e283a | ||
|
bf7b2cebbe | ||
|
72523826de | ||
|
7a1b96cb98 | ||
|
3b2af789dd | ||
|
aa7b761d4c | ||
|
9d420e021d | ||
|
d102153bc0 | ||
|
baed683824 | ||
|
d5cdd12a38 | ||
|
3bae95c8a2 | ||
|
17d16f7887 | ||
|
fa53efefc3 | ||
|
9c86076b21 | ||
|
4af9e8a8b7 | ||
|
b070046674 | ||
|
2a8d1e7bcf | ||
|
71c089e99b | ||
|
2915f0b590 | ||
|
e7b01db7c4 | ||
|
a1565817f1 | ||
|
0e5ef9264f | ||
|
63dbfc04f8 | ||
|
c2bf27a6fb | ||
|
ecf4f17cb8 | ||
|
6e728f3b5c | ||
|
0d0481c787 | ||
|
b2134621cc | ||
|
a0ad45bf9a | ||
|
997e128f88 | ||
|
be70005cb5 | ||
|
9c189bd8dc | ||
|
1475265b58 | ||
|
e841c38c71 | ||
|
579f2938a8 | ||
|
f73c584ceb | ||
|
a3d4053c15 | ||
|
10c5aa00b0 | ||
|
953d87f32c | ||
|
681f3919f0 | ||
|
4a6d278356 | ||
|
434ffc0909 | ||
|
62ef08dfc8 | ||
|
d4507e82ba | ||
|
bc9a61ec69 | ||
|
ff1541f179 | ||
|
8878d0ecce | ||
|
f0cddd16eb | ||
|
c9c7286e56 | ||
|
e2e0498b17 | ||
|
416022a12f | ||
|
320a322080 | ||
|
43d3f6d8d8 | ||
|
4d19a2c5e7 | ||
|
ee5befae97 | ||
|
30f5e1a74b | ||
|
91764a8f6d | ||
|
e2a37a80f6 | ||
|
a965c45b2d | ||
|
ee905e847d | ||
|
0391af0aa1 | ||
|
964e27d91c | ||
|
d26375e22c | ||
|
dc6ae350f3 | ||
|
15173be5c9 | ||
|
be86ba90c4 | ||
|
6b8f3bdc36 | ||
|
95f8c6082d | ||
|
dd6b34fda4 | ||
|
9bba178dce | ||
|
1beb58d745 | ||
|
f204ec4c37 | ||
|
75378f50ea | ||
|
4945db69e5 | ||
|
7bbccb5f4e | ||
|
d94bed0e26 | ||
|
0b622d670d | ||
|
3f317e7d0c | ||
|
871dcdc201 | ||
|
dd115e1227 | ||
|
73ddbb9acc | ||
|
b969ebe7cf | ||
|
7c3ef2f752 | ||
|
ebc369da1d | ||
|
df18769ea6 | ||
|
caf231b050 | ||
|
2ec85268a1 | ||
|
1be4179947 | ||
|
bf95447514 | ||
|
c8c250a59d | ||
|
8b1441e374 | ||
|
a8122531ce | ||
|
922da0a825 | ||
|
5f4bd4d4d2 | ||
|
bd6a845441 | ||
|
bbbca107a2 | ||
|
d07a6c39cf | ||
|
d1d68ce714 | ||
|
c4a2f61e57 | ||
|
0f5ea4b5f8 | ||
|
b88b0cf7fc | ||
|
3c1624950a | ||
|
4e283d3379 | ||
|
e146ef9a93 | ||
|
d30895f5da | ||
|
fe4fc02d7b | ||
|
90b858262b | ||
|
95ae6ebb1b | ||
|
41ce5887ad | ||
|
88e55ec7ef | ||
|
d877e61038 | ||
|
ede89abcb9 |
3
.gitattributes
vendored
@@ -37,6 +37,9 @@
|
||||
*.vrml eol=lf
|
||||
*.md eol=lf
|
||||
*.natvis eol=lf
|
||||
*.fs eol=lf
|
||||
*.vs eol=lf
|
||||
*.glsl eol=lf
|
||||
FILES eol=lf
|
||||
PACKAGES eol=lf
|
||||
EXTERNLIB eol=lf
|
||||
|
3
.tgitconfig
Normal file
@@ -0,0 +1,3 @@
|
||||
[bugtraq]
|
||||
url = https://tracker.dev.opencascade.org/view.php?id=%BUGID%
|
||||
logregex = "(\\s)(00|#)\\d+(?!\\w)\n(\\d+)"
|
136
CMakeLists.txt
@@ -37,6 +37,11 @@ endif()
|
||||
# the name of the project
|
||||
project (OCCT)
|
||||
|
||||
if (WIN32)
|
||||
add_definitions(-DUNICODE)
|
||||
add_definitions(-D_UNICODE)
|
||||
endif()
|
||||
|
||||
# include occt macros
|
||||
OCCT_INCLUDE_CMAKE_FILE ("adm/cmake/occt_macros")
|
||||
|
||||
@@ -52,6 +57,9 @@ set_property (GLOBAL PROPERTY OCC_VERSION_MAINTENANCE ${OCC_VERSION_MAINTENANCE}
|
||||
|
||||
set (INSTALL_TEST_CASES OFF CACHE BOOL "${INSTALL_TEST_CASES_DESCR}")
|
||||
|
||||
# Regeneration of OCCT resource files
|
||||
set (BUILD_RESOURCES OFF CACHE BOOL "${BUILD_RESOURCES_DESCR}")
|
||||
|
||||
# single-configuration generator
|
||||
set (SINGLE_GENERATOR OFF)
|
||||
if (CMAKE_BUILD_TYPE)
|
||||
@@ -285,13 +293,16 @@ if (NOT DEFINED INSTALL_DIR_CMAKE)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# include occt macros
|
||||
OCCT_INCLUDE_CMAKE_FILE ("adm/cmake/occt_resources")
|
||||
|
||||
# install LICENSE_LGPL_21.txt and OCCT_LGPL_EXCEPTION.txt files
|
||||
if ("${INSTALL_DIR_LAYOUT}" STREQUAL "Unix")
|
||||
OCCT_INSTALL_FILE_OR_DIR ("LICENSE_LGPL_21.txt" "${INSTALL_DIR}/${INSTALL_DIR_DOC}")
|
||||
OCCT_INSTALL_FILE_OR_DIR ("OCCT_LGPL_EXCEPTION.txt" "${INSTALL_DIR}/${INSTALL_DIR_DOC}")
|
||||
OCCT_INSTALL_FILE_OR_DIR ("LICENSE_LGPL_21.txt" "${INSTALL_DIR_DOC}")
|
||||
OCCT_INSTALL_FILE_OR_DIR ("OCCT_LGPL_EXCEPTION.txt" "${INSTALL_DIR_DOC}")
|
||||
else()
|
||||
OCCT_INSTALL_FILE_OR_DIR ("LICENSE_LGPL_21.txt" "${INSTALL_DIR}")
|
||||
OCCT_INSTALL_FILE_OR_DIR ("OCCT_LGPL_EXCEPTION.txt" "${INSTALL_DIR}")
|
||||
OCCT_INSTALL_FILE_OR_DIR ("LICENSE_LGPL_21.txt" ".")
|
||||
OCCT_INSTALL_FILE_OR_DIR ("OCCT_LGPL_EXCEPTION.txt" ".")
|
||||
endif()
|
||||
|
||||
if(APPLE)
|
||||
@@ -327,6 +338,17 @@ if (WIN32)
|
||||
set (USE_D3D OFF CACHE BOOL "${USE_D3D_DESCR}")
|
||||
endif()
|
||||
|
||||
# Enable/Disable the floating point exceptions (FPE) during runtime.
|
||||
if (NOT BUILD_ENABLE_FPE_SIGNAL_HANDLER)
|
||||
set (BUILD_ENABLE_FPE_SIGNAL_HANDLER OFF CACHE BOOL "${BUILD_ENABLE_FPE_SIGNAL_HANDLER_DESCR}" FORCE)
|
||||
endif()
|
||||
|
||||
if (BUILD_ENABLE_FPE_SIGNAL_HANDLER)
|
||||
set (BUILD_ENABLE_FPE_SIGNAL_HANDLER 1)
|
||||
else()
|
||||
set (BUILD_ENABLE_FPE_SIGNAL_HANDLER 0)
|
||||
endif()
|
||||
|
||||
# include the patched or original list of modules
|
||||
# list <MODULENAME>_TOOLKITS is created foreach module and contains its toolkits
|
||||
# list <OCCT_MODULES> will contain all modules
|
||||
@@ -425,8 +447,17 @@ else()
|
||||
set (3RDPARTY_DIR "${3RDPARTY_DIR}" CACHE PATH "${3RDPARTY_DIR_DESCR}" FORCE)
|
||||
endif()
|
||||
|
||||
# search for CSF_TclLibs variable in EXTERNLIB of each being used toolkit
|
||||
# search for CSF variable in EXTERNLIB of each being used toolkit
|
||||
OCCT_IS_PRODUCT_REQUIRED (CSF_FreeImagePlus CAN_USE_FREEIMAGE)
|
||||
OCCT_IS_PRODUCT_REQUIRED (CSF_TclLibs USE_TCL)
|
||||
OCCT_IS_PRODUCT_REQUIRED (CSF_FREETYPE USE_FREETYPE)
|
||||
OCCT_IS_PRODUCT_REQUIRED (CSF_OpenGlLibs CAN_USE_GLES2)
|
||||
OCCT_IS_PRODUCT_REQUIRED (CSF_GL2PS CAN_USE_GL2PS)
|
||||
OCCT_IS_PRODUCT_REQUIRED (CSF_TBB CAN_USE_TBB)
|
||||
OCCT_IS_PRODUCT_REQUIRED (CSF_EIGEN CAN_USE_EIGEN)
|
||||
|
||||
# define CSF variable
|
||||
OCCT_INCLUDE_CMAKE_FILE ("adm/cmake/occt_csf")
|
||||
|
||||
if (USE_TCL)
|
||||
message (STATUS "Info: TCL is used by OCCT")
|
||||
@@ -442,9 +473,6 @@ else()
|
||||
OCCT_CHECK_AND_UNSET ("INSTALL_TK")
|
||||
endif()
|
||||
|
||||
# search for CSF_FREETYPE variable in EXTERNLIB of each being used toolkit
|
||||
OCCT_IS_PRODUCT_REQUIRED (CSF_FREETYPE USE_FREETYPE)
|
||||
|
||||
if (USE_FREETYPE)
|
||||
message (STATUS "Info: Freetype is used by OCCT")
|
||||
OCCT_INCLUDE_CMAKE_FILE ("adm/cmake/freetype")
|
||||
@@ -485,8 +513,6 @@ if (USE_GLX)
|
||||
endif()
|
||||
|
||||
# FREEIMAGE
|
||||
# search for CSF_FREEIMAGE variable in EXTERNLIB of each being used toolkit
|
||||
OCCT_IS_PRODUCT_REQUIRED (CSF_FreeImagePlus CAN_USE_FREEIMAGE)
|
||||
|
||||
if (CAN_USE_FREEIMAGE)
|
||||
set (USE_FREEIMAGE OFF CACHE BOOL "${USE_FREEIMAGE_DESCR}")
|
||||
@@ -506,7 +532,6 @@ else()
|
||||
endif()
|
||||
|
||||
# OpenGL ES 2.0
|
||||
OCCT_IS_PRODUCT_REQUIRED (CSF_OpenGlLibs CAN_USE_GLES2)
|
||||
if (WIN32 AND CAN_USE_GLES2)
|
||||
if ("${CMAKE_SYSTEM_NAME}" STREQUAL "WindowsStore")
|
||||
set (USE_GLES2 ON)
|
||||
@@ -534,9 +559,6 @@ else()
|
||||
endif()
|
||||
|
||||
# GL2PS
|
||||
# search for CSF_GL2PS variable in EXTERNLIB of each being used toolkit
|
||||
OCCT_IS_PRODUCT_REQUIRED (CSF_GL2PS CAN_USE_GL2PS)
|
||||
|
||||
if (NOT DEFINED ANDROID AND CAN_USE_GL2PS)
|
||||
set (USE_GL2PS OFF CACHE BOOL "${USE_GL2PS_DESCR}")
|
||||
|
||||
@@ -555,9 +577,6 @@ else()
|
||||
endif()
|
||||
|
||||
# TBB
|
||||
# search for CSF_TBB variable in EXTERNLIB of each being used toolkit
|
||||
OCCT_IS_PRODUCT_REQUIRED (CSF_TBB CAN_USE_TBB)
|
||||
|
||||
if (NOT DEFINED ANDROID AND CAN_USE_TBB)
|
||||
set (USE_TBB OFF CACHE BOOL "${USE_TBB_DESCR}")
|
||||
|
||||
@@ -577,6 +596,22 @@ else()
|
||||
OCCT_CHECK_AND_UNSET ("INSTALL_TBB")
|
||||
endif()
|
||||
|
||||
# EIGEN
|
||||
if (CAN_USE_EIGEN)
|
||||
set (USE_EIGEN OFF CACHE BOOL "${USE_EIGEN_DESCR}")
|
||||
|
||||
if (USE_EIGEN)
|
||||
add_definitions (-DHAVE_EIGEN)
|
||||
OCCT_INCLUDE_CMAKE_FILE ("adm/cmake/eigen")
|
||||
else()
|
||||
OCCT_CHECK_AND_UNSET_GROUP ("3RDPARTY_EIGEN")
|
||||
endif()
|
||||
else()
|
||||
OCCT_CHECK_AND_UNSET ("USE_EIGEN")
|
||||
|
||||
OCCT_CHECK_AND_UNSET_GROUP ("3RDPARTY_EIGEN")
|
||||
endif()
|
||||
|
||||
# Doxygen
|
||||
if (BUILD_DOC_Overview)
|
||||
if (NOT DEFINED INSTALL_DOC_Overview)
|
||||
@@ -584,11 +619,11 @@ if (BUILD_DOC_Overview)
|
||||
endif()
|
||||
|
||||
if (INSTALL_DOC_Overview)
|
||||
install (DIRECTORY "${CMAKE_BINARY_DIR}/doc/overview" DESTINATION "${INSTALL_DIR}/${INSTALL_DIR_DOC}")
|
||||
install (DIRECTORY "${CMAKE_BINARY_DIR}/doc/overview" DESTINATION "${INSTALL_DIR_DOC}")
|
||||
|
||||
# create overview.html only for windows
|
||||
if (WIN32 AND "${INSTALL_DIR_LAYOUT}" STREQUAL "Windows")
|
||||
OCCT_INSTALL_FILE_OR_DIR ("dox/resources/overview.html" "${INSTALL_DIR}/${INSTALL_DIR_DOC}/..")
|
||||
OCCT_INSTALL_FILE_OR_DIR ("dox/resources/overview.html" "${INSTALL_DIR_DOC}/..")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
@@ -675,6 +710,12 @@ COLLECT_AND_INSTALL_OCCT_HEADER_FILES ("${CMAKE_BINARY_DIR}" "${BUILD_TOOLKITS}"
|
||||
string(TIMESTAMP CURRENT_TIME "%H:%M:%S")
|
||||
message (STATUS "Info: \(${CURRENT_TIME}\) End the collecting")
|
||||
|
||||
list (FIND BUILD_TOOLKITS DRAWEXE DRAWEXE_INDEX)
|
||||
if (${DRAWEXE_INDEX} GREATER -1)
|
||||
OCCT_INSTALL_FILE_OR_DIR ("data/" "${INSTALL_DIR_DATA}")
|
||||
OCCT_INSTALL_FILE_OR_DIR ("samples/tcl" "${INSTALL_DIR_SAMPLES}")
|
||||
endif()
|
||||
|
||||
if (WIN32)
|
||||
set (SCRIPT_EXT bat)
|
||||
else()
|
||||
@@ -682,45 +723,51 @@ else()
|
||||
endif()
|
||||
|
||||
# OCCT samples
|
||||
# get absolute path from INSTALL_DIR
|
||||
set (INSTALL_DIR_ABSOLUTE "${INSTALL_DIR}")
|
||||
if(NOT IS_ABSOLUTE "${INSTALL_DIR_ABSOLUTE}")
|
||||
get_filename_component(INSTALL_DIR_ABSOLUTE "${CMAKE_BINARY_DIR}/${INSTALL_DIR}" ABSOLUTE)
|
||||
endif()
|
||||
|
||||
if (INSTALL_SAMPLES)
|
||||
OCCT_CONFIGURE ("adm/templates/env.samples.${SCRIPT_EXT}.in" "env.samples.${SCRIPT_EXT}")
|
||||
if (WIN32)
|
||||
OCCT_INSTALL_FILE_OR_DIR ("samples/CSharp" "${INSTALL_DIR}/${INSTALL_DIR_SAMPLES}")
|
||||
OCCT_INSTALL_FILE_OR_DIR ("samples/mfc" "${INSTALL_DIR}/${INSTALL_DIR_SAMPLES}")
|
||||
OCCT_INSTALL_FILE_OR_DIR ("samples/CSharp" "${INSTALL_DIR_SAMPLES}")
|
||||
OCCT_INSTALL_FILE_OR_DIR ("samples/mfc" "${INSTALL_DIR_SAMPLES}")
|
||||
|
||||
if ("${CMAKE_SYSTEM_NAME}" STREQUAL "WindowsStore")
|
||||
OCCT_INSTALL_FILE_OR_DIR ("samples/xaml" "${INSTALL_DIR}/${INSTALL_DIR_SAMPLES}")
|
||||
OCCT_INSTALL_FILE_OR_DIR ("samples/xaml" "${INSTALL_DIR_SAMPLES}")
|
||||
endif()
|
||||
|
||||
install (FILES "${CMAKE_BINARY_DIR}/env.samples.${SCRIPT_EXT}" DESTINATION "${INSTALL_DIR}/${INSTALL_DIR_SAMPLES}/CSharp" RENAME "env.${SCRIPT_EXT}")
|
||||
install (FILES "${CMAKE_BINARY_DIR}/env.samples.${SCRIPT_EXT}" DESTINATION "${INSTALL_DIR}/${INSTALL_DIR_SAMPLES}/mfc/standard" RENAME "env.${SCRIPT_EXT}")
|
||||
install (FILES "${CMAKE_BINARY_DIR}/env.samples.${SCRIPT_EXT}" DESTINATION "${INSTALL_DIR_SAMPLES}/CSharp" RENAME "env.${SCRIPT_EXT}")
|
||||
install (FILES "${CMAKE_BINARY_DIR}/env.samples.${SCRIPT_EXT}" DESTINATION "${INSTALL_DIR_SAMPLES}/mfc/standard" RENAME "env.${SCRIPT_EXT}")
|
||||
endif()
|
||||
|
||||
OCCT_INSTALL_FILE_OR_DIR ("samples/java" "${INSTALL_DIR}/${INSTALL_DIR_SAMPLES}")
|
||||
OCCT_INSTALL_FILE_OR_DIR ("samples/ocafsamples" "${INSTALL_DIR}/${INSTALL_DIR_SAMPLES}")
|
||||
OCCT_INSTALL_FILE_OR_DIR ("samples/qt" "${INSTALL_DIR}/${INSTALL_DIR_SAMPLES}")
|
||||
OCCT_INSTALL_FILE_OR_DIR ("samples/java" "${INSTALL_DIR_SAMPLES}")
|
||||
OCCT_INSTALL_FILE_OR_DIR ("samples/ocafsamples" "${INSTALL_DIR_SAMPLES}")
|
||||
OCCT_INSTALL_FILE_OR_DIR ("samples/qt" "${INSTALL_DIR_SAMPLES}")
|
||||
|
||||
install (FILES "${CMAKE_BINARY_DIR}/env.samples.${SCRIPT_EXT}" DESTINATION "${INSTALL_DIR}/${INSTALL_DIR_SAMPLES}/qt/FuncDemo" RENAME "env.${SCRIPT_EXT}")
|
||||
install (FILES "${CMAKE_BINARY_DIR}/env.samples.${SCRIPT_EXT}" DESTINATION "${INSTALL_DIR}/${INSTALL_DIR_SAMPLES}/qt/IESample" RENAME "env.${SCRIPT_EXT}")
|
||||
install (FILES "${CMAKE_BINARY_DIR}/env.samples.${SCRIPT_EXT}" DESTINATION "${INSTALL_DIR}/${INSTALL_DIR_SAMPLES}/qt/Tutorial" RENAME "env.${SCRIPT_EXT}")
|
||||
install (FILES "${CMAKE_BINARY_DIR}/env.samples.${SCRIPT_EXT}" DESTINATION "${INSTALL_DIR_SAMPLES}/qt/FuncDemo" RENAME "env.${SCRIPT_EXT}")
|
||||
install (FILES "${CMAKE_BINARY_DIR}/env.samples.${SCRIPT_EXT}" DESTINATION "${INSTALL_DIR_SAMPLES}/qt/IESample" RENAME "env.${SCRIPT_EXT}")
|
||||
install (FILES "${CMAKE_BINARY_DIR}/env.samples.${SCRIPT_EXT}" DESTINATION "${INSTALL_DIR_SAMPLES}/qt/Tutorial" RENAME "env.${SCRIPT_EXT}")
|
||||
endif()
|
||||
|
||||
if (INSTALL_TEST_CASES)
|
||||
OCCT_INSTALL_FILE_OR_DIR ("tests/" "${INSTALL_DIR}/${INSTALL_DIR_TESTS}")
|
||||
OCCT_INSTALL_FILE_OR_DIR ("tests/" "${INSTALL_DIR_TESTS}")
|
||||
endif()
|
||||
|
||||
list (FIND BUILD_TOOLKITS DRAWEXE DRAWEXE_INDEX)
|
||||
if (${DRAWEXE_INDEX} GREATER -1)
|
||||
# copy data and samples/tcl folders to install script folder
|
||||
OCCT_INSTALL_FILE_OR_DIR ("data/" "${INSTALL_DIR}/${INSTALL_DIR_DATA}")
|
||||
OCCT_INSTALL_FILE_OR_DIR ("samples/tcl" "${INSTALL_DIR}/${INSTALL_DIR_SAMPLES}")
|
||||
OCCT_INSTALL_FILE_OR_DIR ("data/" "${INSTALL_DIR_DATA}")
|
||||
OCCT_INSTALL_FILE_OR_DIR ("samples/tcl" "${INSTALL_DIR_SAMPLES}")
|
||||
|
||||
# copy draw script to install script folder
|
||||
if (BUILD_PATCH AND EXISTS "${BUILD_PATCH}/adm/templates/draw.${SCRIPT_EXT}")
|
||||
install (FILES "${BUILD_PATCH}/adm/templates/draw.${SCRIPT_EXT}" DESTINATION "${INSTALL_DIR}/${INSTALL_DIR_SCRIPT}"
|
||||
install (FILES "${BUILD_PATCH}/adm/templates/draw.${SCRIPT_EXT}" DESTINATION "${INSTALL_DIR_SCRIPT}"
|
||||
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_WRITE GROUP_EXECUTE WORLD_READ WORLD_WRITE WORLD_EXECUTE)
|
||||
else()
|
||||
install (FILES "${CMAKE_SOURCE_DIR}/adm/templates/draw.${SCRIPT_EXT}" DESTINATION "${INSTALL_DIR}/${INSTALL_DIR_SCRIPT}"
|
||||
install (FILES "${CMAKE_SOURCE_DIR}/adm/templates/draw.${SCRIPT_EXT}" DESTINATION "${INSTALL_DIR_SCRIPT}"
|
||||
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_WRITE GROUP_EXECUTE WORLD_READ WORLD_WRITE WORLD_EXECUTE)
|
||||
endif()
|
||||
|
||||
@@ -744,18 +791,18 @@ if (EXISTS "${INSTALL_DIR}/${INSTALL_DIR_SCRIPT}/custom.${SCRIPT_EXT}")
|
||||
|
||||
file (WRITE "${INSTALL_DIR}/${INSTALL_DIR_SCRIPT}/custom.${SCRIPT_EXT}" "${CUSTOM_CONTENT}")
|
||||
else()
|
||||
OCCT_CONFIGURE_AND_INSTALL ("adm/templates/custom.${SCRIPT_EXT}.main" "custom.${SCRIPT_EXT}" "custom.${SCRIPT_EXT}" "${INSTALL_DIR}/${INSTALL_DIR_SCRIPT}")
|
||||
OCCT_CONFIGURE_AND_INSTALL ("adm/templates/custom.${SCRIPT_EXT}.main" "custom.${SCRIPT_EXT}" "custom.${SCRIPT_EXT}" "${INSTALL_DIR_SCRIPT}")
|
||||
endif()
|
||||
|
||||
# write current custom.bat/sh (for install directory)
|
||||
set (SUB_CUSTOM_BUILD_NAME "custom_${COMPILER}_${COMPILER_BITNESS}.install.${SCRIPT_EXT}")
|
||||
OCCT_CONFIGURE_AND_INSTALL ("adm/templates/custom.install.${SCRIPT_EXT}.in" "${SUB_CUSTOM_BUILD_NAME}" "${SUB_CUSTOM_NAME}" "${INSTALL_DIR}/${INSTALL_DIR_SCRIPT}")
|
||||
OCCT_CONFIGURE_AND_INSTALL ("adm/templates/custom.install.${SCRIPT_EXT}.in" "${SUB_CUSTOM_BUILD_NAME}" "${SUB_CUSTOM_NAME}" "${INSTALL_DIR_SCRIPT}")
|
||||
|
||||
# write current custom.bat/sh (for build directory)
|
||||
OCCT_CONFIGURE ("adm/templates/custom.build.${SCRIPT_EXT}.in" "${SUB_CUSTOM_NAME}")
|
||||
|
||||
if (BUILD_MODULE_MfcSamples)
|
||||
OCCT_INSTALL_FILE_OR_DIR ("adm/templates/sample.bat" "${INSTALL_DIR}/${INSTALL_DIR_SCRIPT}")
|
||||
OCCT_INSTALL_FILE_OR_DIR ("adm/templates/sample.bat" "${INSTALL_DIR_SCRIPT}")
|
||||
OCCT_COPY_FILE_OR_DIR ("adm/templates/sample.bat" "${CMAKE_BINARY_DIR}")
|
||||
endif()
|
||||
|
||||
@@ -763,7 +810,7 @@ endif()
|
||||
OCCT_CONFIGURE ("adm/templates/env.${SCRIPT_EXT}.in" "env.${SCRIPT_EXT}")
|
||||
|
||||
# install env script
|
||||
install (FILES "${CMAKE_BINARY_DIR}/env.${SCRIPT_EXT}" DESTINATION "${INSTALL_DIR}/${INSTALL_DIR_SCRIPT}")
|
||||
install (FILES "${CMAKE_BINARY_DIR}/env.${SCRIPT_EXT}" DESTINATION "${INSTALL_DIR_SCRIPT}")
|
||||
|
||||
# copy DrawAppliInit from OCCT source to build directory
|
||||
if (NOT EXISTS "${CMAKE_BINARY_DIR}/DrawAppliInit")
|
||||
@@ -776,9 +823,9 @@ foreach(RESOURCE ${RESOURCES})
|
||||
get_filename_component(RESOURCE_FOLDER ${RESOURCE} DIRECTORY)
|
||||
if(NOT "${RESOURCE_FOLDER}" STREQUAL "")
|
||||
get_filename_component(RESOURCE_FOLDER ${RESOURCE_FOLDER} NAME)
|
||||
OCCT_INSTALL_FILE_OR_DIR ("src/${RESOURCE}" "${INSTALL_DIR}/${INSTALL_DIR_RESOURCE}/${RESOURCE_FOLDER}")
|
||||
OCCT_INSTALL_FILE_OR_DIR ("src/${RESOURCE}" "${INSTALL_DIR_RESOURCE}/${RESOURCE_FOLDER}")
|
||||
else()
|
||||
OCCT_INSTALL_FILE_OR_DIR ("src/${RESOURCE}" "${INSTALL_DIR}/${INSTALL_DIR_RESOURCE}")
|
||||
OCCT_INSTALL_FILE_OR_DIR ("src/${RESOURCE}" "${INSTALL_DIR_RESOURCE}")
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
@@ -787,9 +834,6 @@ if (NOT "${BUILD_SHARED_LIBRARY_NAME_POSTFIX}" STREQUAL "")
|
||||
OCCT_UPDATE_DRAW_DEFAULT_FILE()
|
||||
endif()
|
||||
|
||||
# define CSF variable
|
||||
OCCT_INCLUDE_CMAKE_FILE ("adm/cmake/occt_csf")
|
||||
|
||||
# include patched toolkit projects or original ones
|
||||
foreach (BUILD_TOOLKIT ${BUILD_TOOLKITS})
|
||||
OCCT_ADD_SUBDIRECTORY ("src/${BUILD_TOOLKIT}")
|
||||
@@ -933,7 +977,7 @@ endif()
|
||||
|
||||
# Configure and install cmake config file
|
||||
configure_file("${CMAKE_SOURCE_DIR}/adm/templates/OpenCASCADEConfig.cmake.in" "OpenCASCADEConfig.cmake" @ONLY)
|
||||
install(FILES "${CMAKE_BINARY_DIR}/OpenCASCADEConfig.cmake" DESTINATION "${INSTALL_DIR}/${INSTALL_DIR_CMAKE}")
|
||||
install(FILES "${CMAKE_BINARY_DIR}/OpenCASCADEConfig.cmake" DESTINATION "${INSTALL_DIR_CMAKE}")
|
||||
|
||||
# Configure cmake version file
|
||||
include(CMakePackageConfigHelpers)
|
||||
@@ -942,7 +986,7 @@ write_basic_package_version_file( ${CMAKE_BINARY_DIR}/OpenCASCADEConfigVersion.c
|
||||
COMPATIBILITY ExactVersion )
|
||||
|
||||
# Install cmake version file
|
||||
install (FILES "${CMAKE_BINARY_DIR}/OpenCASCADEConfigVersion.cmake" DESTINATION "${INSTALL_DIR}/${INSTALL_DIR_CMAKE}")
|
||||
install (FILES "${CMAKE_BINARY_DIR}/OpenCASCADEConfigVersion.cmake" DESTINATION "${INSTALL_DIR_CMAKE}")
|
||||
|
||||
# Install the export set for use with the install-tree for each configuration
|
||||
foreach (OCCT_MODULE ${OCCT_MODULES_ENABLED})
|
||||
|
@@ -6,6 +6,5 @@ Shaders
|
||||
XSMessage
|
||||
XSTEPResource
|
||||
XmlOcafResource
|
||||
UnitsAPI/Lexi_Expr.dat
|
||||
UnitsAPI/Units.dat
|
||||
TObj/TObj.msg
|
@@ -5,7 +5,6 @@ n Bnd
|
||||
n BVH
|
||||
n CSLib
|
||||
n Convert
|
||||
n Dico
|
||||
n ElCLib
|
||||
n ElSLib
|
||||
n Expr
|
||||
@@ -248,6 +247,7 @@ n StdObjMgt
|
||||
n StdDrivers
|
||||
n StdObject
|
||||
n StdPersistent
|
||||
n StdStorage
|
||||
n ShapePersistent
|
||||
n TDF
|
||||
n TDataStd
|
||||
@@ -399,9 +399,6 @@ n HLRTest
|
||||
n MeshTest
|
||||
n SWDRAW
|
||||
n TObjDRAW
|
||||
n TestTopOpe
|
||||
n TestTopOpeDraw
|
||||
n TestTopOpeTools
|
||||
n ViewerTest
|
||||
n XDEDRAW
|
||||
n XSDRAW
|
||||
@@ -438,3 +435,4 @@ n IVtkDraw
|
||||
t TKIVtkDraw
|
||||
n Geom2dEvaluator
|
||||
t TKVCAF
|
||||
n XCAFView
|
@@ -6,7 +6,7 @@ endif()
|
||||
set(3RDPARTY_MACRO_ALREADY_INCLUDED 1)
|
||||
|
||||
|
||||
macro (THIRDPARTY_PRODUCT PRODUCT_NAME HEADER_NAME LIBRARY_NAME LIBRARY_NAME_DEBUG)
|
||||
macro (THIRDPARTY_PRODUCT PRODUCT_NAME HEADER_NAME LIBRARY_CSF_NAME LIBRARY_NAME_DEBUG_SUFFIX)
|
||||
|
||||
if (NOT DEFINED INSTALL_${PRODUCT_NAME} AND BUILD_SHARED_LIBS)
|
||||
set (INSTALL_${PRODUCT_NAME} OFF CACHE BOOL "${INSTALL_${PRODUCT_NAME}_DESCR}")
|
||||
@@ -37,54 +37,57 @@ macro (THIRDPARTY_PRODUCT PRODUCT_NAME HEADER_NAME LIBRARY_NAME LIBRARY_NAME_DEB
|
||||
set (3RDPARTY_${PRODUCT_NAME}_INCLUDE_DIR "" CACHE PATH "the path of ${HEADER_NAME}")
|
||||
endif()
|
||||
|
||||
if (BUILD_SHARED_LIBS)
|
||||
if (NOT DEFINED 3RDPARTY_${PRODUCT_NAME}_LIBRARY OR NOT 3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR OR NOT EXISTS "${3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR}")
|
||||
set (3RDPARTY_${PRODUCT_NAME}_LIBRARY "" CACHE FILEPATH "${PRODUCT_NAME} library" FORCE)
|
||||
endif()
|
||||
|
||||
if (NOT DEFINED 3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR)
|
||||
set (3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR "" CACHE PATH "The directory containing ${PRODUCT_NAME} library")
|
||||
endif()
|
||||
|
||||
if (WIN32)
|
||||
if (NOT DEFINED 3RDPARTY_${PRODUCT_NAME}_DLL OR NOT 3RDPARTY_${PRODUCT_NAME}_DLL_DIR OR NOT EXISTS "${3RDPARTY_${PRODUCT_NAME}_DLL_DIR}")
|
||||
set (3RDPARTY_${PRODUCT_NAME}_DLL "" CACHE FILEPATH "${PRODUCT_NAME} shared library" FORCE)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (WIN32)
|
||||
if (NOT DEFINED 3RDPARTY_${PRODUCT_NAME}_DLL_DIR)
|
||||
set (3RDPARTY_${PRODUCT_NAME}_DLL_DIR "" CACHE PATH "The directory containing ${PRODUCT_NAME} shared library")
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# check 3RDPARTY_${PRODUCT_NAME}_ paths for consistency with specified 3RDPARTY_${PRODUCT_NAME}_DIR
|
||||
if (3RDPARTY_${PRODUCT_NAME}_DIR AND EXISTS "${3RDPARTY_${PRODUCT_NAME}_DIR}")
|
||||
CHECK_PATH_FOR_CONSISTENCY (3RDPARTY_${PRODUCT_NAME}_DIR 3RDPARTY_${PRODUCT_NAME}_INCLUDE_DIR PATH "the path to ${PRODUCT_NAME}")
|
||||
separate_arguments (${LIBRARY_CSF_NAME})
|
||||
foreach (LIBRARY_NAME ${${LIBRARY_CSF_NAME}})
|
||||
string (REPLACE "." "" LIBRARY_NAME "${LIBRARY_NAME}")
|
||||
if (BUILD_SHARED_LIBS)
|
||||
CHECK_PATH_FOR_CONSISTENCY (3RDPARTY_${PRODUCT_NAME}_DIR 3RDPARTY_${PRODUCT_NAME}_LIBRARY FILEPATH "the path to ${PRODUCT_NAME} library")
|
||||
if (NOT DEFINED 3RDPARTY_${PRODUCT_NAME}_LIBRARY_${LIBRARY_NAME} OR NOT 3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR_${LIBRARY_NAME} OR NOT EXISTS "${3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR_${LIBRARY_NAME}}")
|
||||
set (3RDPARTY_${PRODUCT_NAME}_LIBRARY_${LIBRARY_NAME} "" CACHE FILEPATH "${PRODUCT_NAME} library \"${LIBRARY_NAME}\"" FORCE)
|
||||
endif()
|
||||
|
||||
if (3RDPARTY_${PRODUCT_NAME}_LIBRARY AND EXISTS "${3RDPARTY_${PRODUCT_NAME}_LIBRARY}")
|
||||
get_filename_component (3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR "${3RDPARTY_${PRODUCT_NAME}_LIBRARY}" PATH)
|
||||
set (3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR "${3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR}" CACHE PATH "The directory containing ${PRODUCT_NAME} library" FORCE)
|
||||
else()
|
||||
CHECK_PATH_FOR_CONSISTENCY (3RDPARTY_${PRODUCT_NAME}_DIR 3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR PATH "The directory containing ${PRODUCT_NAME} library")
|
||||
if (NOT DEFINED 3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR_${LIBRARY_NAME})
|
||||
set (3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR_${LIBRARY_NAME} "" CACHE PATH "The directory containing ${PRODUCT_NAME} library \"${LIBRARY_NAME}\"")
|
||||
endif()
|
||||
|
||||
if (WIN32)
|
||||
CHECK_PATH_FOR_CONSISTENCY (3RDPARTY_${PRODUCT_NAME}_DIR 3RDPARTY_${PRODUCT_NAME}_DLL FILEPATH "the path to ${PRODUCT_NAME} shared library")
|
||||
if (NOT DEFINED 3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME} OR NOT 3RDPARTY_${PRODUCT_NAME}_DLL_DIR_${LIBRARY_NAME} OR NOT EXISTS "${3RDPARTY_${PRODUCT_NAME}_DLL_DIR_${LIBRARY_NAME}}")
|
||||
set (3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME} "" CACHE FILEPATH "${PRODUCT_NAME} shared library \"${LIBRARY_NAME}\"" FORCE)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (3RDPARTY_${PRODUCT_NAME}_DLL AND EXISTS "${3RDPARTY_${PRODUCT_NAME}_DLL}")
|
||||
get_filename_component (3RDPARTY_${PRODUCT_NAME}_DLL_DIR "${3RDPARTY_${PRODUCT_NAME}_DLL}" PATH)
|
||||
set (3RDPARTY_${PRODUCT_NAME}_DLL_DIR "${3RDPARTY_${PRODUCT_NAME}_DLL_DIR}" CACHE PATH "The directory containing ${PRODUCT_NAME} shared library" FORCE)
|
||||
else()
|
||||
CHECK_PATH_FOR_CONSISTENCY (3RDPARTY_${PRODUCT_NAME}_DIR 3RDPARTY_${PRODUCT_NAME}_DLL_DIR PATH "The directory containing ${PRODUCT_NAME} shared library")
|
||||
if (WIN32)
|
||||
if (NOT DEFINED 3RDPARTY_${PRODUCT_NAME}_DLL_DIR_${LIBRARY_NAME})
|
||||
set (3RDPARTY_${PRODUCT_NAME}_DLL_DIR_${LIBRARY_NAME} "" CACHE PATH "The directory containing ${PRODUCT_NAME} shared library \"${LIBRARY_NAME}\"")
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# check 3RDPARTY_${PRODUCT_NAME}_ paths for consistency with specified 3RDPARTY_${PRODUCT_NAME}_DIR
|
||||
if (3RDPARTY_${PRODUCT_NAME}_DIR AND EXISTS "${3RDPARTY_${PRODUCT_NAME}_DIR}")
|
||||
CHECK_PATH_FOR_CONSISTENCY (3RDPARTY_${PRODUCT_NAME}_DIR 3RDPARTY_${PRODUCT_NAME}_INCLUDE_DIR PATH "the path to ${PRODUCT_NAME}")
|
||||
if (BUILD_SHARED_LIBS)
|
||||
CHECK_PATH_FOR_CONSISTENCY (3RDPARTY_${PRODUCT_NAME}_DIR 3RDPARTY_${PRODUCT_NAME}_LIBRARY_${LIBRARY_NAME} FILEPATH "the path to ${PRODUCT_NAME} library \"${LIBRARY_NAME}\"")
|
||||
|
||||
if (3RDPARTY_${PRODUCT_NAME}_LIBRARY_${LIBRARY_NAME} AND EXISTS "${3RDPARTY_${PRODUCT_NAME}_LIBRARY_${LIBRARY_NAME}}")
|
||||
get_filename_component (3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR_${LIBRARY_NAME} "${3RDPARTY_${PRODUCT_NAME}_LIBRARY_${LIBRARY_NAME}}" PATH)
|
||||
set (3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR_${LIBRARY_NAME} "${3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR_${LIBRARY_NAME}}" CACHE PATH "The directory containing ${PRODUCT_NAME} library \"${LIBRARY_NAME}\"" FORCE)
|
||||
else()
|
||||
CHECK_PATH_FOR_CONSISTENCY (3RDPARTY_${PRODUCT_NAME}_DIR 3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR_${LIBRARY_NAME} PATH "The directory containing ${PRODUCT_NAME} library \"${LIBRARY_NAME}\"")
|
||||
endif()
|
||||
|
||||
if (WIN32)
|
||||
CHECK_PATH_FOR_CONSISTENCY (3RDPARTY_${PRODUCT_NAME}_DIR 3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME} FILEPATH "the path to ${PRODUCT_NAME} shared library \"${LIBRARY_NAME}\"")
|
||||
|
||||
if (3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME} AND EXISTS "${3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME}}")
|
||||
get_filename_component (3RDPARTY_${PRODUCT_NAME}_DLL_DIR_${LIBRARY_NAME} "${3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME}}" PATH)
|
||||
set (3RDPARTY_${PRODUCT_NAME}_DLL_DIR_${LIBRARY_NAME} "${3RDPARTY_${PRODUCT_NAME}_DLL_DIR_${LIBRARY_NAME}}" CACHE PATH "The directory containing ${PRODUCT_NAME} shared library \"${LIBRARY_NAME}\"" FORCE)
|
||||
else()
|
||||
CHECK_PATH_FOR_CONSISTENCY (3RDPARTY_${PRODUCT_NAME}_DIR 3RDPARTY_${PRODUCT_NAME}_DLL_DIR_${LIBRARY_NAME} PATH "The directory containing ${PRODUCT_NAME} shared library \"${LIBRARY_NAME}\"")
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
endforeach()
|
||||
# header
|
||||
if (NOT 3RDPARTY_${PRODUCT_NAME}_INCLUDE_DIR OR NOT EXISTS "${3RDPARTY_${PRODUCT_NAME}_INCLUDE_DIR}")
|
||||
|
||||
@@ -112,158 +115,179 @@ macro (THIRDPARTY_PRODUCT PRODUCT_NAME HEADER_NAME LIBRARY_NAME LIBRARY_NAME_DEB
|
||||
set (3RDPARTY_${PRODUCT_NAME}_INCLUDE_DIR "" CACHE FILEPATH "The path to ${HEADER_NAME}" FORCE)
|
||||
endif()
|
||||
|
||||
if (BUILD_SHARED_LIBS)
|
||||
# library
|
||||
if (NOT 3RDPARTY_${PRODUCT_NAME}_LIBRARY OR NOT EXISTS "${3RDPARTY_${PRODUCT_NAME}_LIBRARY}")
|
||||
set (CMAKE_FIND_LIBRARY_SUFFIXES .lib .so .dylib .a)
|
||||
foreach (LIBRARY_NAME ${${LIBRARY_CSF_NAME}})
|
||||
string (REPLACE "." "" LIBRARY_NAME_SUFFIX "${LIBRARY_NAME}")
|
||||
if (BUILD_SHARED_LIBS)
|
||||
# library
|
||||
if (NOT 3RDPARTY_${PRODUCT_NAME}_LIBRARY_${LIBRARY_NAME_SUFFIX} OR NOT EXISTS "${3RDPARTY_${PRODUCT_NAME}_LIBRARY_${LIBRARY_NAME_SUFFIX}}")
|
||||
set (CMAKE_FIND_LIBRARY_SUFFIXES .lib .so .dylib .a)
|
||||
|
||||
set (${PRODUCT_NAME}_PATH_SUFFIXES lib)
|
||||
if (ANDROID)
|
||||
set (${PRODUCT_NAME}_PATH_SUFFIXES ${${PRODUCT_NAME}_PATH_SUFFIXES} libs/${ANDROID_ABI})
|
||||
endif()
|
||||
set (${PRODUCT_NAME}_PATH_SUFFIXES lib)
|
||||
if (ANDROID)
|
||||
set (${PRODUCT_NAME}_PATH_SUFFIXES ${${PRODUCT_NAME}_PATH_SUFFIXES} libs/${ANDROID_ABI})
|
||||
endif()
|
||||
|
||||
# set 3RDPARTY_${PRODUCT_NAME}_LIBRARY as notfound, otherwise find_library can't assign a new value to 3RDPARTY_${PRODUCT_NAME}_LIBRARY
|
||||
set (3RDPARTY_${PRODUCT_NAME}_LIBRARY "3RDPARTY_${PRODUCT_NAME}_LIBRARY-NOTFOUND" CACHE FILEPATH "The path to ${PRODUCT_NAME} library" FORCE)
|
||||
|
||||
if (3RDPARTY_${PRODUCT_NAME}_DIR AND EXISTS "${3RDPARTY_${PRODUCT_NAME}_DIR}")
|
||||
find_library (3RDPARTY_${PRODUCT_NAME}_LIBRARY NAMES ${LIBRARY_NAME}
|
||||
PATHS "${3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR}" "${3RDPARTY_${PRODUCT_NAME}_DIR}"
|
||||
PATH_SUFFIXES ${${PRODUCT_NAME}_PATH_SUFFIXES}
|
||||
CMAKE_FIND_ROOT_PATH_BOTH
|
||||
NO_DEFAULT_PATH)
|
||||
else()
|
||||
find_library (3RDPARTY_${PRODUCT_NAME}_LIBRARY NAMES ${LIBRARY_NAME}
|
||||
PATH_SUFFIXES ${${PRODUCT_NAME}_PATH_SUFFIXES}
|
||||
CMAKE_FIND_ROOT_PATH_BOTH)
|
||||
endif()
|
||||
|
||||
if (3RDPARTY_${PRODUCT_NAME}_LIBRARY AND EXISTS "${3RDPARTY_${PRODUCT_NAME}_LIBRARY}")
|
||||
get_filename_component (3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR "${3RDPARTY_${PRODUCT_NAME}_LIBRARY}" PATH)
|
||||
set (3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR "${3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR}" CACHE PATH "The directory containing ${PRODUCT_NAME} library" FORCE)
|
||||
else()
|
||||
set (3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR "" CACHE PATH "The directory containing ${PRODUCT_NAME} library" FORCE)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR AND EXISTS "${3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR}")
|
||||
list (APPEND 3RDPARTY_LIBRARY_DIRS "${3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR}")
|
||||
else()
|
||||
list (APPEND 3RDPARTY_NOT_INCLUDED 3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR)
|
||||
|
||||
set (3RDPARTY_${PRODUCT_NAME}_LIBRARY "" CACHE FILEPATH "The path to ${PRODUCT_NAME} library" FORCE)
|
||||
endif()
|
||||
|
||||
# shared library
|
||||
if (WIN32)
|
||||
if (NOT 3RDPARTY_${PRODUCT_NAME}_DLL OR NOT EXISTS "${3RDPARTY_${PRODUCT_NAME}_DLL}")
|
||||
|
||||
set (CMAKE_FIND_LIBRARY_SUFFIXES .dll)
|
||||
|
||||
# set 3RDPARTY_${PRODUCT_NAME}_DLL as notfound, otherwise find_library can't assign a new value to 3RDPARTY_${PRODUCT_NAME}_DLL
|
||||
set (3RDPARTY_${PRODUCT_NAME}_DLL "3RDPARTY_${PRODUCT_NAME}_DLL-NOTFOUND" CACHE FILEPATH "The path to ${PRODUCT_NAME} shared library" FORCE)
|
||||
# set 3RDPARTY_${PRODUCT_NAME}_LIBRARY as notfound, otherwise find_library can't assign a new value to 3RDPARTY_${PRODUCT_NAME}_LIBRARY
|
||||
set (3RDPARTY_${PRODUCT_NAME}_LIBRARY_${LIBRARY_NAME_SUFFIX} "3RDPARTY_${PRODUCT_NAME}_LIBRARY_${LIBRARY_NAME_SUFFIX}-NOTFOUND" CACHE FILEPATH "The path to ${PRODUCT_NAME} library \"${LIBRARY_NAME}\"" FORCE)
|
||||
|
||||
if (3RDPARTY_${PRODUCT_NAME}_DIR AND EXISTS "${3RDPARTY_${PRODUCT_NAME}_DIR}")
|
||||
find_library (3RDPARTY_${PRODUCT_NAME}_DLL NAMES ${LIBRARY_NAME}
|
||||
PATHS "${3RDPARTY_${PRODUCT_NAME}_DIR}"
|
||||
PATH_SUFFIXES bin
|
||||
NO_DEFAULT_PATH)
|
||||
find_library (3RDPARTY_${PRODUCT_NAME}_LIBRARY_${LIBRARY_NAME_SUFFIX} NAMES ${LIBRARY_NAME}
|
||||
PATHS "${3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR_${LIBRARY_NAME}}" "${3RDPARTY_${PRODUCT_NAME}_DIR}"
|
||||
PATH_SUFFIXES ${${PRODUCT_NAME}_PATH_SUFFIXES}
|
||||
CMAKE_FIND_ROOT_PATH_BOTH
|
||||
NO_DEFAULT_PATH)
|
||||
else()
|
||||
find_library (3RDPARTY_${PRODUCT_NAME}_DLL NAMES ${LIBRARY_NAME} PATH_SUFFIXES bin)
|
||||
find_library (3RDPARTY_${PRODUCT_NAME}_LIBRARY_${LIBRARY_NAME_SUFFIX} NAMES ${LIBRARY_NAME}
|
||||
PATH_SUFFIXES ${${PRODUCT_NAME}_PATH_SUFFIXES}
|
||||
CMAKE_FIND_ROOT_PATH_BOTH)
|
||||
endif()
|
||||
|
||||
if (3RDPARTY_${PRODUCT_NAME}_DLL AND EXISTS "${3RDPARTY_${PRODUCT_NAME}_DLL}")
|
||||
get_filename_component (3RDPARTY_${PRODUCT_NAME}_DLL_DIR "${3RDPARTY_${PRODUCT_NAME}_DLL}" PATH)
|
||||
set (3RDPARTY_${PRODUCT_NAME}_DLL_DIR "${3RDPARTY_${PRODUCT_NAME}_DLL_DIR}" CACHE PATH "The directory containing ${PRODUCT_NAME} library" FORCE)
|
||||
if (3RDPARTY_${PRODUCT_NAME}_LIBRARY_${LIBRARY_NAME_SUFFIX} AND EXISTS "${3RDPARTY_${PRODUCT_NAME}_LIBRARY_${LIBRARY_NAME_SUFFIX}}")
|
||||
get_filename_component (3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR_${LIBRARY_NAME_SUFFIX} "${3RDPARTY_${PRODUCT_NAME}_LIBRARY_${LIBRARY_NAME_SUFFIX}}" PATH)
|
||||
set (3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR_${LIBRARY_NAME_SUFFIX} "${3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR_${LIBRARY_NAME_SUFFIX}}" CACHE PATH "The directory containing ${PRODUCT_NAME} library \"${LIBRARY_NAME}\"" FORCE)
|
||||
else()
|
||||
set (3RDPARTY_${PRODUCT_NAME}_DLL_DIR "" CACHE PATH "The directory containing ${PRODUCT_NAME} shared library" FORCE)
|
||||
|
||||
set (3RDPARTY_${PRODUCT_NAME}_DLL "" CACHE FILEPATH "${PRODUCT_NAME} shared library" FORCE)
|
||||
set (3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR_${LIBRARY_NAME_SUFFIX} "" CACHE PATH "The directory containing ${PRODUCT_NAME} library \"${LIBRARY_NAME}\"" FORCE)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (3RDPARTY_${PRODUCT_NAME}_DLL_DIR OR EXISTS "${3RDPARTY_${PRODUCT_NAME}_DLL_DIR}")
|
||||
list (APPEND 3RDPARTY_DLL_DIRS "${3RDPARTY_${PRODUCT_NAME}_DLL_DIR}")
|
||||
if (3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR_${LIBRARY_NAME_SUFFIX} AND EXISTS "${3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR_${LIBRARY_NAME_SUFFIX}}")
|
||||
list (APPEND 3RDPARTY_LIBRARY_DIRS "${3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR_${LIBRARY_NAME_SUFFIX}}")
|
||||
else()
|
||||
list (APPEND 3RDPARTY_NOT_INCLUDED 3RDPARTY_${PRODUCT_NAME}_DLL_DIR)
|
||||
list (APPEND 3RDPARTY_NOT_INCLUDED 3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR_${LIBRARY_NAME_SUFFIX})
|
||||
|
||||
set (3RDPARTY_${PRODUCT_NAME}_LIBRARY_${LIBRARY_NAME_SUFFIX} "" CACHE FILEPATH "The path to ${PRODUCT_NAME} library \"${LIBRARY_NAME}\"" FORCE)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
set (USED_3RDPARTY_${PRODUCT_NAME}_DIR "")
|
||||
|
||||
if (INSTALL_${PRODUCT_NAME})
|
||||
OCCT_MAKE_OS_WITH_BITNESS()
|
||||
OCCT_MAKE_COMPILER_SHORT_NAME()
|
||||
|
||||
# shared library
|
||||
if (WIN32)
|
||||
if (SINGLE_GENERATOR)
|
||||
install (FILES "${3RDPARTY_${PRODUCT_NAME}_DLL}" DESTINATION "${INSTALL_DIR}/${INSTALL_DIR_BIN}")
|
||||
else()
|
||||
install (FILES "${3RDPARTY_${PRODUCT_NAME}_DLL}"
|
||||
CONFIGURATIONS Release
|
||||
DESTINATION "${INSTALL_DIR}/${INSTALL_DIR_BIN}")
|
||||
install (FILES "${3RDPARTY_${PRODUCT_NAME}_DLL}"
|
||||
CONFIGURATIONS RelWithDebInfo
|
||||
DESTINATION "${INSTALL_DIR}/${INSTALL_DIR_BIN}i")
|
||||
install (FILES "${3RDPARTY_${PRODUCT_NAME}_DLL}"
|
||||
CONFIGURATIONS Debug
|
||||
DESTINATION "${INSTALL_DIR}/${INSTALL_DIR_BIN}d")
|
||||
endif()
|
||||
else()
|
||||
get_filename_component(ABS_PATH ${3RDPARTY_${PRODUCT_NAME}_LIBRARY} REALPATH)
|
||||
if (NOT 3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME_SUFFIX} OR NOT EXISTS "${3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME_SUFFIX}}")
|
||||
|
||||
if ("${PRODUCT_NAME}" STREQUAL "FREEIMAGE")
|
||||
get_filename_component(FREEIMLIB ${3RDPARTY_${PRODUCT_NAME}_LIBRARY} NAME)
|
||||
set (CMAKE_FIND_LIBRARY_SUFFIXES .dll)
|
||||
|
||||
if (SINGLE_GENERATOR)
|
||||
install (FILES "${ABS_PATH}" DESTINATION "${INSTALL_DIR}/${INSTALL_DIR_LIB}" RENAME ${FREEIMLIB}.3)
|
||||
# set 3RDPARTY_${PRODUCT_NAME}_DLL as notfound, otherwise find_library can't assign a new value to 3RDPARTY_${PRODUCT_NAME}_DLL
|
||||
set (3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME_SUFFIX} "3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME_SUFFIX}-NOTFOUND" CACHE FILEPATH "The path to ${PRODUCT_NAME} shared library \"${LIBRARY_NAME}\"" FORCE)
|
||||
|
||||
if (3RDPARTY_${PRODUCT_NAME}_DIR AND EXISTS "${3RDPARTY_${PRODUCT_NAME}_DIR}")
|
||||
find_library (3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME_SUFFIX} NAMES ${LIBRARY_NAME}
|
||||
PATHS "${3RDPARTY_${PRODUCT_NAME}_DIR}"
|
||||
PATH_SUFFIXES bin
|
||||
NO_DEFAULT_PATH)
|
||||
else()
|
||||
install (FILES "${ABS_PATH}"
|
||||
CONFIGURATIONS Release
|
||||
DESTINATION "${INSTALL_DIR}/${INSTALL_DIR_LIB}"
|
||||
RENAME ${FREEIMLIB}.3)
|
||||
install (FILES "${ABS_PATH}"
|
||||
CONFIGURATIONS RelWithDebInfo
|
||||
DESTINATION "${INSTALL_DIR}/${INSTALL_DIR_LIB}i"
|
||||
RENAME ${FREEIMLIB}.3)
|
||||
install (FILES "${ABS_PATH}"
|
||||
CONFIGURATIONS Debug
|
||||
DESTINATION "${INSTALL_DIR}/${INSTALL_DIR_LIB}d"
|
||||
RENAME ${FREEIMLIB}.3)
|
||||
find_library (3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME_SUFFIX} NAMES ${LIBRARY_NAME} PATH_SUFFIXES bin)
|
||||
endif()
|
||||
|
||||
if (3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME_SUFFIX} AND EXISTS "${3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME_SUFFIX}}")
|
||||
get_filename_component (3RDPARTY_${PRODUCT_NAME}_DLL_DIR_${LIBRARY_NAME_SUFFIX} "${3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME_SUFFIX}}" PATH)
|
||||
set (3RDPARTY_${PRODUCT_NAME}_DLL_DIR_${LIBRARY_NAME_SUFFIX} "${3RDPARTY_${PRODUCT_NAME}_DLL_DIR_${LIBRARY_NAME_SUFFIX}}" CACHE PATH "The directory containing ${PRODUCT_NAME} library \"${LIBRARY_NAME}\"" FORCE)
|
||||
else()
|
||||
set (3RDPARTY_${PRODUCT_NAME}_DLL_DIR_${LIBRARY_NAME_SUFFIX} "" CACHE PATH "The directory containing ${PRODUCT_NAME} shared library \"${LIBRARY_NAME}\"" FORCE)
|
||||
|
||||
set (3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME_SUFFIX} "" CACHE FILEPATH "${PRODUCT_NAME} shared library \"${LIBRARY_NAME}\"" FORCE)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if("${PRODUCT_NAME}" STREQUAL "GL2PS")
|
||||
get_filename_component(GL2PSLIB ${3RDPARTY_${PRODUCT_NAME}_LIBRARY} NAME)
|
||||
|
||||
if (SINGLE_GENERATOR)
|
||||
install (FILES "${ABS_PATH}" DESTINATION "${INSTALL_DIR}/${INSTALL_DIR_LIB}" RENAME ${GL2PSLIB}.1)
|
||||
else()
|
||||
install (FILES "${ABS_PATH}"
|
||||
CONFIGURATIONS Release
|
||||
DESTINATION "${INSTALL_DIR}/${INSTALL_DIR_LIB}"
|
||||
RENAME ${GL2PSLIB}.1)
|
||||
install (FILES "${ABS_PATH}"
|
||||
CONFIGURATIONS RelWithDebInfo
|
||||
DESTINATION "${INSTALL_DIR}/${INSTALL_DIR_LIB}i"
|
||||
RENAME ${GL2PSLIB}.1)
|
||||
install (FILES "${ABS_PATH}"
|
||||
CONFIGURATIONS Debug
|
||||
DESTINATION "${INSTALL_DIR}/${INSTALL_DIR_LIB}d"
|
||||
RENAME ${GL2PSLIB}.1)
|
||||
endif()
|
||||
if (3RDPARTY_${PRODUCT_NAME}_DLL_DIR_${LIBRARY_NAME_SUFFIX} OR EXISTS "${3RDPARTY_${PRODUCT_NAME}_DLL_DIR_${LIBRARY_NAME_SUFFIX}}")
|
||||
list (APPEND 3RDPARTY_DLL_DIRS "${3RDPARTY_${PRODUCT_NAME}_DLL_DIR_${LIBRARY_NAME_SUFFIX}}")
|
||||
else()
|
||||
list (APPEND 3RDPARTY_NOT_INCLUDED 3RDPARTY_${PRODUCT_NAME}_DLL_DIR_${LIBRARY_NAME_SUFFIX})
|
||||
endif()
|
||||
endif()
|
||||
else()
|
||||
# the library directory for using by the executable
|
||||
if (WIN32)
|
||||
set (USED_3RDPARTY_${PRODUCT_NAME}_DIR "${3RDPARTY_${PRODUCT_NAME}_DLL_DIR}")
|
||||
else()
|
||||
set (USED_3RDPARTY_${PRODUCT_NAME}_DIR "${3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
mark_as_advanced (3RDPARTY_${PRODUCT_NAME}_LIBRARY 3RDPARTY_${PRODUCT_NAME}_DLL)
|
||||
endif()
|
||||
if (WIN32)
|
||||
set (3RDPARTY_${PRODUCT_NAME}_DLL_DIRS "")
|
||||
else()
|
||||
set (3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIRS "")
|
||||
endif()
|
||||
|
||||
foreach (LIBRARY_NAME ${${LIBRARY_CSF_NAME}})
|
||||
string (REPLACE "." "" LIBRARY_NAME_SUFFIX "${LIBRARY_NAME}")
|
||||
if (WIN32)
|
||||
set (3RDPARTY_${PRODUCT_NAME}_DLL_DIRS "${3RDPARTY_${PRODUCT_NAME}_DLL_DIR_${LIBRARY_NAME_SUFFIX}};${3RDPARTY_${PRODUCT_NAME}_DLL_DIRS}")
|
||||
else()
|
||||
set (3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIRS "${3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR_${LIBRARY_NAME_SUFFIX}}:${3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIRS}")
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
set (USED_3RDPARTY_${PRODUCT_NAME}_DIRS "")
|
||||
|
||||
if (INSTALL_${PRODUCT_NAME})
|
||||
OCCT_MAKE_OS_WITH_BITNESS()
|
||||
OCCT_MAKE_COMPILER_SHORT_NAME()
|
||||
|
||||
if (WIN32)
|
||||
if (SINGLE_GENERATOR)
|
||||
install (FILES "${3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME_SUFFIX}}" DESTINATION "${INSTALL_DIR_BIN}")
|
||||
else()
|
||||
install (FILES "${3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME_SUFFIX}}"
|
||||
CONFIGURATIONS Release
|
||||
DESTINATION "${INSTALL_DIR_BIN}")
|
||||
install (FILES "${3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME_SUFFIX}}"
|
||||
CONFIGURATIONS RelWithDebInfo
|
||||
DESTINATION "${INSTALL_DIR_BIN}i")
|
||||
install (FILES "${3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME_SUFFIX}}"
|
||||
CONFIGURATIONS Debug
|
||||
DESTINATION "${INSTALL_DIR_BIN}d")
|
||||
endif()
|
||||
else()
|
||||
get_filename_component(ABS_PATH ${3RDPARTY_${PRODUCT_NAME}_LIBRARY_${LIBRARY_NAME_SUFFIX}} REALPATH)
|
||||
|
||||
if ("${PRODUCT_NAME}" STREQUAL "FREEIMAGE")
|
||||
get_filename_component(FREEIMLIB ${3RDPARTY_${PRODUCT_NAME}_LIBRARY_${LIBRARY_NAME_SUFFIX}} NAME)
|
||||
|
||||
if (SINGLE_GENERATOR)
|
||||
install (FILES "${ABS_PATH}" DESTINATION "${INSTALL_DIR_LIB}" RENAME ${FREEIMLIB}.3)
|
||||
else()
|
||||
install (FILES "${ABS_PATH}"
|
||||
CONFIGURATIONS Release
|
||||
DESTINATION "${INSTALL_DIR_LIB}"
|
||||
RENAME ${FREEIMLIB}.3)
|
||||
install (FILES "${ABS_PATH}"
|
||||
CONFIGURATIONS RelWithDebInfo
|
||||
DESTINATION "${INSTALL_DIR_LIB}i"
|
||||
RENAME ${FREEIMLIB}.3)
|
||||
install (FILES "${ABS_PATH}"
|
||||
CONFIGURATIONS Debug
|
||||
DESTINATION "${INSTALL_DIR_LIB}d"
|
||||
RENAME ${FREEIMLIB}.3)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if("${PRODUCT_NAME}" STREQUAL "GL2PS")
|
||||
get_filename_component(GL2PSLIB ${3RDPARTY_${PRODUCT_NAME}_LIBRARY_${LIBRARY_NAME_SUFFIX}} NAME)
|
||||
|
||||
if (SINGLE_GENERATOR)
|
||||
install (FILES "${ABS_PATH}" DESTINATION "${INSTALL_DIR_LIB}" RENAME ${GL2PSLIB}.1)
|
||||
else()
|
||||
install (FILES "${ABS_PATH}"
|
||||
CONFIGURATIONS Release
|
||||
DESTINATION "${INSTALL_DIR_LIB}"
|
||||
RENAME ${GL2PSLIB}.1)
|
||||
install (FILES "${ABS_PATH}"
|
||||
CONFIGURATIONS RelWithDebInfo
|
||||
DESTINATION "${INSTALL_DIR_LIB}i"
|
||||
RENAME ${GL2PSLIB}.1)
|
||||
install (FILES "${ABS_PATH}"
|
||||
CONFIGURATIONS Debug
|
||||
DESTINATION "${INSTALL_DIR_LIB}d"
|
||||
RENAME ${GL2PSLIB}.1)
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
else()
|
||||
# the library directory for using by the executable
|
||||
foreach (LIBRARY_NAME ${${LIBRARY_CSF_NAME}})
|
||||
string (REPLACE "." "" LIBRARY_NAME_SUFFIX "${LIBRARY_NAME}")
|
||||
if (WIN32)
|
||||
set (USED_3RDPARTY_${PRODUCT_NAME}_DIRS "${3RDPARTY_${PRODUCT_NAME}_DLL_DIR_${LIBRARY_NAME_SUFFIX}};${USED_3RDPARTY_${PRODUCT_NAME}_DIRS}")
|
||||
else()
|
||||
set (USED_3RDPARTY_${PRODUCT_NAME}_DIRS "${3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR_${LIBRARY_NAME_SUFFIX}}:${USED_3RDPARTY_${PRODUCT_NAME}_DIRS}")
|
||||
endif()
|
||||
endforeach()
|
||||
endif()
|
||||
|
||||
mark_as_advanced (3RDPARTY_${PRODUCT_NAME}_LIBRARY_${LIBRARY_NAME_SUFFIX} 3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME_SUFFIX})
|
||||
endif()
|
||||
endforeach()
|
||||
endmacro()
|
||||
|
||||
macro (COMPLIANCE_PRODUCT_CONSISTENCY LIBNAME)
|
||||
|
@@ -1,9 +1,10 @@
|
||||
# doxygen
|
||||
set (DOXYGEN_MINIMUM_VERSION 1.8.4)
|
||||
|
||||
if (DO_ONLY_CHECK_FOR_DOXYGEN)
|
||||
message (STATUS "Info. Detecting doxygen")
|
||||
set (DOXYGEN_SKIP_DOT ON)
|
||||
find_package (Doxygen)
|
||||
find_package (Doxygen ${DOXYGEN_MINIMUM_VERSION})
|
||||
|
||||
set (CAN_DOXYGEN_BE_USED OFF)
|
||||
if (DOXYGEN_EXECUTABLE)
|
||||
@@ -33,7 +34,7 @@ else()
|
||||
if (NOT 3RDPARTY_DOXYGEN_EXECUTABLE OR (NOT 3RDPARTY_SKIP_DOT_EXECUTABLE AND NOT 3RDPARTY_DOT_EXECUTABLE))
|
||||
|
||||
set (DOXYGEN_SKIP_DOT ${3RDPARTY_SKIP_DOT_EXECUTABLE})
|
||||
find_package (Doxygen)
|
||||
find_package (Doxygen ${DOXYGEN_MINIMUM_VERSION})
|
||||
|
||||
if (NOT 3RDPARTY_DOXYGEN_EXECUTABLE AND DOXYGEN_EXECUTABLE)
|
||||
set (3RDPARTY_DOXYGEN_EXECUTABLE "${DOXYGEN_EXECUTABLE}" CACHE FILEPATH "${3RDPARTY_DOXYGEN_EXECUTABLE_DESCR}" FORCE)
|
||||
|
@@ -1,6 +1,3 @@
|
||||
# EGL
|
||||
if (WIN32)
|
||||
THIRDPARTY_PRODUCT("EGL" "EGL/egl.h" "libEGL" "libEGL")
|
||||
else()
|
||||
THIRDPARTY_PRODUCT("EGL" "EGL/egl.h" "EGL" "EGL")
|
||||
endif()
|
||||
|
||||
THIRDPARTY_PRODUCT("EGL" "EGL/egl.h" "CSF_OpenGlLibs" "")
|
||||
|
71
adm/cmake/eigen.cmake
Normal file
@@ -0,0 +1,71 @@
|
||||
# eigen
|
||||
|
||||
# eigen directory
|
||||
if (NOT DEFINED 3RDPARTY_EIGEN_DIR)
|
||||
set (3RDPARTY_EIGEN_DIR "" CACHE PATH "The directory containing eigen")
|
||||
endif()
|
||||
|
||||
# search for eigen in user defined directory
|
||||
if (3RDPARTY_DIR AND EXISTS "${3RDPARTY_DIR}")
|
||||
if (NOT 3RDPARTY_EIGEN_DIR OR NOT EXISTS "${3RDPARTY_EIGEN_DIR}")
|
||||
FIND_PRODUCT_DIR("${3RDPARTY_DIR}" Eigen EIGEN_DIR_NAME)
|
||||
if (EIGEN_DIR_NAME)
|
||||
set (3RDPARTY_EIGEN_DIR "${3RDPARTY_DIR}/${EIGEN_DIR_NAME}" CACHE PATH "The directory containing eigen" FORCE)
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (NOT DEFINED 3RDPARTY_EIGEN_INCLUDE_DIR)
|
||||
set (3RDPARTY_EIGEN_INCLUDE_DIR "" CACHE FILEPATH "The directory containing headers of the EIGEN")
|
||||
endif()
|
||||
|
||||
if (NOT 3RDPARTY_EIGEN_INCLUDE_DIR OR NOT EXISTS "${3RDPARTY_EIGEN_INCLUDE_DIR}")
|
||||
|
||||
set (HEADER_NAMES Eigen)
|
||||
|
||||
set (3RDPARTY_EIGEN_INCLUDE_DIR "3RDPARTY_EIGEN_INCLUDE_DIR-NOTFOUND" CACHE PATH "the path to Eigen header file" FORCE)
|
||||
|
||||
if (3RDPARTY_EIGEN_DIR AND EXISTS "${3RDPARTY_EIGEN_DIR}")
|
||||
find_path (3RDPARTY_EIGEN_INCLUDE_DIR NAMES ${HEADER_NAMES}
|
||||
PATHS ${3RDPARTY_EIGEN_DIR}
|
||||
PATH_SUFFIXES include eigen3 include/eigen3
|
||||
CMAKE_FIND_ROOT_PATH_BOTH
|
||||
NO_DEFAULT_PATH)
|
||||
else()
|
||||
find_path (3RDPARTY_EIGEN_INCLUDE_DIR NAMES ${HEADER_NAMES}
|
||||
PATH_SUFFIXES include eigen3 include/eigen3
|
||||
CMAKE_FIND_ROOT_PATH_BOTH)
|
||||
endif()
|
||||
|
||||
# use default (CMake) EIGEN search
|
||||
if (NOT 3RDPARTY_EIGEN_INCLUDE_DIR OR NOT EXISTS "${3RDPARTY_EIGEN_INCLUDE_DIR}")
|
||||
# use 3RDPARTY_EIGEN_DIR if it is specified for eigen search
|
||||
if (3RDPARTY_EIGEN_DIR AND EXISTS "${3RDPARTY_EIGEN_DIR}")
|
||||
set (CACHED_EIGEN_DIR $ENV{Eigen3_DIR})
|
||||
set (ENV{Eigen3_DIR} "${3RDPARTY_EIGEN_DIR}")
|
||||
endif()
|
||||
|
||||
find_package(Eigen3 QUIET)
|
||||
|
||||
# restore ENV{Eigen3_DIR}
|
||||
if (3RDPARTY_EIGEN_DIR AND EXISTS "${3RDPARTY_EIGEN_DIR}")
|
||||
set (ENV{Eigen3_DIR} ${CACHED_EIGEN_DIR})
|
||||
endif()
|
||||
|
||||
if (${EIGEN3_FOUND})
|
||||
set (3RDPARTY_EIGEN_INCLUDE_DIR "${EIGEN3_INCLUDE_DIR}" CACHE PATH "the path to Eigen header file" FORCE)
|
||||
set (3RDPARTY_EIGEN_DIR "${EIGEN3_ROOT_DIR}" CACHE PATH "The directory containing eigen" FORCE)
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (3RDPARTY_EIGEN_INCLUDE_DIR AND EXISTS "${3RDPARTY_EIGEN_INCLUDE_DIR}")
|
||||
list (APPEND 3RDPARTY_INCLUDE_DIRS "${3RDPARTY_EIGEN_INCLUDE_DIR}")
|
||||
else()
|
||||
list (APPEND 3RDPARTY_NOT_INCLUDED 3RDPARTY_EIGEN_INCLUDE_DIR)
|
||||
|
||||
set (3RDPARTY_EIGEN_INCLUDE_DIR "" CACHE PATH "the path to Eigen header file" FORCE)
|
||||
endif()
|
||||
|
||||
# unset all redundant variables
|
||||
OCCT_CHECK_AND_UNSET(Eigen3_DIR)
|
@@ -1,3 +1,3 @@
|
||||
#freeimage
|
||||
|
||||
THIRDPARTY_PRODUCT("FREEIMAGE" "FreeImage.h" "freeimage" "freeimaged")
|
||||
THIRDPARTY_PRODUCT("FREEIMAGE" "FreeImage.h" "CSF_FreeImagePlus" "d")
|
||||
|
@@ -231,13 +231,13 @@ if (BUILD_SHARED_LIBS)
|
||||
set (3RDPARTY_FREETYPE_LIBRARY "3RDPARTY_FREETYPE_LIBRARY-NOTFOUND" CACHE FILEPATH "The path to freetype library" FORCE)
|
||||
|
||||
if (3RDPARTY_FREETYPE_DIR AND EXISTS "${3RDPARTY_FREETYPE_DIR}")
|
||||
find_library (3RDPARTY_FREETYPE_LIBRARY freetype
|
||||
find_library (3RDPARTY_FREETYPE_LIBRARY ${CSF_FREETYPE}
|
||||
PATHS "${3RDPARTY_FREETYPE_LIBRARY_DIR}" "${3RDPARTY_FREETYPE_DIR}"
|
||||
PATH_SUFFIXES ${FREETYPE_PATH_SUFFIXES}
|
||||
CMAKE_FIND_ROOT_PATH_BOTH
|
||||
NO_DEFAULT_PATH)
|
||||
else()
|
||||
find_library (3RDPARTY_FREETYPE_LIBRARY freetype
|
||||
find_library (3RDPARTY_FREETYPE_LIBRARY ${CSF_FREETYPE}
|
||||
PATH_SUFFIXES ${FREETYPE_PATH_SUFFIXES}
|
||||
CMAKE_FIND_ROOT_PATH_BOTH)
|
||||
endif()
|
||||
@@ -268,12 +268,12 @@ if (BUILD_SHARED_LIBS)
|
||||
set (3RDPARTY_FREETYPE_DLL "3RDPARTY_FREETYPE_DLL-NOTFOUND" CACHE FILEPATH "The path to freetype shared library" FORCE)
|
||||
|
||||
if (3RDPARTY_FREETYPE_DIR AND EXISTS "${3RDPARTY_FREETYPE_DIR}")
|
||||
find_library (3RDPARTY_FREETYPE_DLL freetype
|
||||
find_library (3RDPARTY_FREETYPE_DLL ${CSF_FREETYPE}
|
||||
PATHS "${3RDPARTY_FREETYPE_DIR}"
|
||||
PATH_SUFFIXES bin
|
||||
NO_DEFAULT_PATH)
|
||||
else()
|
||||
find_library (3RDPARTY_FREETYPE_DLL freetype
|
||||
find_library (3RDPARTY_FREETYPE_DLL ${CSF_FREETYPE}
|
||||
PATH_SUFFIXES bin)
|
||||
endif()
|
||||
|
||||
@@ -300,17 +300,17 @@ if (BUILD_SHARED_LIBS)
|
||||
|
||||
if (WIN32)
|
||||
if (SINGLE_GENERATOR)
|
||||
install (FILES "${3RDPARTY_FREETYPE_DLL}" DESTINATION "${INSTALL_DIR}/${INSTALL_DIR_BIN}")
|
||||
install (FILES "${3RDPARTY_FREETYPE_DLL}" DESTINATION "${INSTALL_DIR_BIN}")
|
||||
else()
|
||||
install (FILES "${3RDPARTY_FREETYPE_DLL}"
|
||||
CONFIGURATIONS Release
|
||||
DESTINATION "${INSTALL_DIR}/${INSTALL_DIR_BIN}")
|
||||
DESTINATION "${INSTALL_DIR_BIN}")
|
||||
install (FILES "${3RDPARTY_FREETYPE_DLL}"
|
||||
CONFIGURATIONS RelWithDebInfo
|
||||
DESTINATION "${INSTALL_DIR}/${INSTALL_DIR_BIN}i")
|
||||
DESTINATION "${INSTALL_DIR_BIN}i")
|
||||
install (FILES "${3RDPARTY_FREETYPE_DLL}"
|
||||
CONFIGURATIONS Debug
|
||||
DESTINATION "${INSTALL_DIR}/${INSTALL_DIR_BIN}d")
|
||||
DESTINATION "${INSTALL_DIR_BIN}d")
|
||||
endif()
|
||||
else()
|
||||
get_filename_component(3RDPARTY_FREETYPE_LIBRARY_ABS ${3RDPARTY_FREETYPE_LIBRARY} REALPATH)
|
||||
@@ -318,20 +318,20 @@ if (BUILD_SHARED_LIBS)
|
||||
|
||||
if (SINGLE_GENERATOR)
|
||||
install (FILES "${3RDPARTY_FREETYPE_LIBRARY_ABS}"
|
||||
DESTINATION "${INSTALL_DIR}/${INSTALL_DIR_LIB}"
|
||||
DESTINATION "${INSTALL_DIR_LIB}"
|
||||
RENAME ${3RDPARTY_FREETYPE_LIBRARY_NAME}.6)
|
||||
else()
|
||||
install (FILES "${3RDPARTY_FREETYPE_LIBRARY_ABS}"
|
||||
CONFIGURATIONS Release
|
||||
DESTINATION "${INSTALL_DIR}/${INSTALL_DIR_LIB}"
|
||||
DESTINATION "${INSTALL_DIR_LIB}"
|
||||
RENAME ${3RDPARTY_FREETYPE_LIBRARY_NAME}.6)
|
||||
install (FILES "${3RDPARTY_FREETYPE_LIBRARY_ABS}"
|
||||
CONFIGURATIONS RelWithDebInfo
|
||||
DESTINATION "${INSTALL_DIR}/${INSTALL_DIR_LIB}i"
|
||||
DESTINATION "${INSTALL_DIR_LIB}i"
|
||||
RENAME ${3RDPARTY_FREETYPE_LIBRARY_NAME}.6)
|
||||
install (FILES "${3RDPARTY_FREETYPE_LIBRARY_ABS}"
|
||||
CONFIGURATIONS Debug
|
||||
DESTINATION "${INSTALL_DIR}/${INSTALL_DIR_LIB}d"
|
||||
DESTINATION "${INSTALL_DIR_LIB}d"
|
||||
RENAME ${3RDPARTY_FREETYPE_LIBRARY_NAME}.6)
|
||||
endif()
|
||||
endif()
|
||||
|
@@ -1,3 +1,3 @@
|
||||
#GL2PS
|
||||
|
||||
THIRDPARTY_PRODUCT("GL2PS" "gl2ps.h" "gl2ps" "gl2psd")
|
||||
THIRDPARTY_PRODUCT("GL2PS" "gl2ps.h" "CSF_GL2PS" "d")
|
||||
|
@@ -1,6 +1,3 @@
|
||||
# OpenGL ES 2.0
|
||||
if (WIN32)
|
||||
THIRDPARTY_PRODUCT("GLES2" "GLES2/gl2.h" "libGLESv2" "libGLESv2")
|
||||
else()
|
||||
THIRDPARTY_PRODUCT("GLES2" "GLES2/gl2.h" "GLESv2" "GLESv2")
|
||||
endif()
|
||||
|
||||
THIRDPARTY_PRODUCT("GLES2" "GLES2/gl2.h" "CSF_OpenGlLibs" "")
|
||||
|
@@ -1,3 +1,4 @@
|
||||
# glx
|
||||
|
||||
THIRDPARTY_PRODUCT("GLX" "GL/glx.h" "GL" "GLd")
|
||||
separate_arguments (CSF_OpenGlLibs)
|
||||
THIRDPARTY_PRODUCT("GLX" "GL/glx.h" "CSF_OpenGlLibs" "d")
|
||||
|
@@ -10,61 +10,65 @@ if (NOT DEFINED USE_TCL)
|
||||
OCCT_IS_PRODUCT_REQUIRED (CSF_TclLibs USE_TCL)
|
||||
endif()
|
||||
|
||||
if (USE_TCL AND BUILD_SHARED_LIBS)
|
||||
if ("${3RDPARTY_TCL_LIBRARY_VERSION}" STREQUAL "")
|
||||
message (STATUS "Warning: TCL version has not been specified by CSF_TclLibs defining thus it will be used as 8.6")
|
||||
set (3RDPARTY_TCL_LIBRARY_VERSION "8.6")
|
||||
endif()
|
||||
|
||||
if ("${3RDPARTY_TK_LIBRARY_VERSION}" STREQUAL "")
|
||||
message (STATUS "Warning: TK version has not been specified by CSF_TclTkLibs defining thus it will be used as 8.6")
|
||||
set (3RDPARTY_TK_LIBRARY_VERSION "8.6")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# TBB
|
||||
if (USE_TBB)
|
||||
set (CSF_TBB "tbb tbbmalloc")
|
||||
else()
|
||||
set (CSF_TBB)
|
||||
endif()
|
||||
|
||||
# FREETYPE
|
||||
if (USE_FREETYPE)
|
||||
set (CSF_FREETYPE "freetype")
|
||||
else()
|
||||
set (CSF_FREETYPE)
|
||||
endif()
|
||||
|
||||
# FREEIMAGE
|
||||
if (USE_FREEIMAGE)
|
||||
set (CSF_FreeImagePlus "freeimage")
|
||||
else()
|
||||
set (CSF_FreeImagePlus)
|
||||
endif()
|
||||
|
||||
# TCL/TK
|
||||
if (USE_TCL)
|
||||
if (WIN32)
|
||||
set (CSF_TclLibs "tcl86")
|
||||
set (CSF_TclTkLibs "tk86")
|
||||
else()
|
||||
if(APPLE)
|
||||
set (CSF_TclTkLibs Tk)
|
||||
set (CSF_TclLibs Tcl)
|
||||
elseif(UNIX)
|
||||
set (CSF_TclLibs "tcl8.6")
|
||||
set (CSF_TclTkLibs "tk8.6")
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# GL2PS
|
||||
if (NOT DEFINED ANDROID)
|
||||
if (USE_GL2PS)
|
||||
set (CSF_GL2PS "gl2ps")
|
||||
else()
|
||||
set (CSF_GL2PS)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (WIN32)
|
||||
set (CSF_advapi32 "advapi32.lib")
|
||||
set (CSF_gdi32 "gdi32.lib")
|
||||
set (CSF_user32 "user32.lib")
|
||||
set (CSF_wsock32 "wsock32.lib")
|
||||
set (CSF_psapi "Psapi.lib")
|
||||
set (CSF_AviLibs "ws2_32.lib vfw32.lib")
|
||||
if ("${CMAKE_SYSTEM_NAME}" STREQUAL "WindowsStore" OR USE_GLES2)
|
||||
set (CSF_OpenGlLibs "libEGL.lib libGLESv2.lib")
|
||||
set (CSF_OpenGlLibs "libEGL libGLESv2")
|
||||
else()
|
||||
set (CSF_OpenGlLibs "opengl32.lib")
|
||||
endif()
|
||||
|
||||
if (USE_FREETYPE)
|
||||
set (CSF_FREETYPE "freetype.lib")
|
||||
else()
|
||||
set (CSF_FREETYPE)
|
||||
endif()
|
||||
|
||||
if (USE_GL2PS)
|
||||
set (CSF_GL2PS "gl2ps.lib")
|
||||
else()
|
||||
set (CSF_GL2PS)
|
||||
endif()
|
||||
|
||||
if (USE_FREEIMAGE)
|
||||
set (CSF_FreeImagePlus "freeimage.lib")
|
||||
else()
|
||||
set (CSF_FreeImagePlus)
|
||||
endif()
|
||||
|
||||
if (USE_TCL)
|
||||
set (CSF_TclLibs "tcl${3RDPARTY_TCL_LIBRARY_VERSION}.lib")
|
||||
set (CSF_TclTkLibs "tk${3RDPARTY_TK_LIBRARY_VERSION}.lib")
|
||||
endif()
|
||||
|
||||
else()
|
||||
|
||||
if (APPLE)
|
||||
set (CSF_objc "objc")
|
||||
@@ -89,10 +93,6 @@ else()
|
||||
OCCT_CHECK_AND_UNSET (OpenGlLibs_LIB)
|
||||
endif()
|
||||
|
||||
if (USE_TCL)
|
||||
set (CSF_TclTkLibs Tk)
|
||||
set (CSF_TclLibs Tcl)
|
||||
endif()
|
||||
elseif (ANDROID)
|
||||
set (CSF_ThreadLibs "c")
|
||||
set (CSF_OpenGlLibs "EGL GLESv2")
|
||||
@@ -101,30 +101,5 @@ else()
|
||||
set (CSF_OpenGlLibs "GL")
|
||||
set (CSF_XwLibs "X11 Xext Xmu Xi")
|
||||
set (CSF_dl "dl")
|
||||
|
||||
if (USE_TCL)
|
||||
set (CSF_TclLibs "tcl${3RDPARTY_TCL_LIBRARY_VERSION}")
|
||||
set (CSF_TclTkLibs "tk${3RDPARTY_TK_LIBRARY_VERSION}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (USE_FREETYPE)
|
||||
set (CSF_FREETYPE "freetype")
|
||||
else()
|
||||
set (CSF_FREETYPE)
|
||||
endif()
|
||||
|
||||
if (USE_FREEIMAGE)
|
||||
set (CSF_FreeImagePlus "freeimage")
|
||||
else()
|
||||
set (CSF_FreeImagePlus)
|
||||
endif()
|
||||
|
||||
if (NOT DEFINED ANDROID)
|
||||
if (USE_GL2PS)
|
||||
set (CSF_GL2PS "gl2ps")
|
||||
else()
|
||||
set (CSF_GL2PS)
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
@@ -122,7 +122,14 @@ if(MINGW)
|
||||
add_definitions(-D_WIN32_WINNT=0x0501)
|
||||
# workaround bugs in mingw with vtable export
|
||||
set (CMAKE_SHARED_LINKER_FLAGS "-Wl,--export-all-symbols")
|
||||
elseif (DEFINED CMAKE_COMPILER_IS_GNUCXX OR "x${CMAKE_CXX_COMPILER_ID}" STREQUAL "xClang")
|
||||
elseif ("x${CMAKE_CXX_COMPILER_ID}" STREQUAL "xClang")
|
||||
if (APPLE)
|
||||
# CLang can be used with both libstdc++ and libc++, however on OS X libstdc++ is outdated.
|
||||
set (CMAKE_CXX_FLAGS "-std=c++0x -stdlib=libc++ ${CMAKE_CXX_FLAGS}")
|
||||
else()
|
||||
set (CMAKE_CXX_FLAGS "-std=c++0x ${CMAKE_CXX_FLAGS}")
|
||||
endif()
|
||||
elseif (DEFINED CMAKE_COMPILER_IS_GNUCXX)
|
||||
set (CMAKE_CXX_FLAGS "-std=c++0x ${CMAKE_CXX_FLAGS}")
|
||||
endif()
|
||||
|
||||
|
@@ -257,6 +257,8 @@ macro (COLLECT_AND_INSTALL_OCCT_HEADER_FILES ROOT_TARGET_OCCT_DIR OCCT_BUILD_TOO
|
||||
foreach (FILE_INDEX RANGE ${ALL_FILES_NB})
|
||||
list (GET OCCT_ALL_FILE_NAMES ${FILE_INDEX} OCCT_FILE_NAME)
|
||||
|
||||
string (REGEX REPLACE "[^:]+:+" "" OCCT_FILE_NAME "${OCCT_FILE_NAME}")
|
||||
|
||||
if ("${OCCT_FILE_IN_DIR_NAME}" STREQUAL "${OCCT_FILE_NAME}")
|
||||
set (OCCT_FILE_IN_DIR_STATUS ON)
|
||||
|
||||
@@ -296,10 +298,11 @@ macro (COLLECT_AND_INSTALL_OCCT_HEADER_FILES ROOT_TARGET_OCCT_DIR OCCT_BUILD_TOO
|
||||
|
||||
foreach (OCCT_HEADER_FILE ${OCCT_HEADER_FILES_COMPLETE})
|
||||
get_filename_component (HEADER_FILE_NAME ${OCCT_HEADER_FILE} NAME)
|
||||
set (OCCT_HEADER_FILE_CONTENT "#include \"${OCCT_HEADER_FILE}\"")
|
||||
configure_file ("${TEMPLATE_HEADER_PATH}" "${ROOT_TARGET_OCCT_DIR}/inc/${HEADER_FILE_NAME}" @ONLY)
|
||||
endforeach()
|
||||
|
||||
install (FILES ${OCCT_HEADER_FILES_COMPLETE} DESTINATION "${INSTALL_DIR}/${INSTALL_DIR_INCLUDE}")
|
||||
install (FILES ${OCCT_HEADER_FILES_COMPLETE} DESTINATION "${INSTALL_DIR_INCLUDE}")
|
||||
|
||||
string(TIMESTAMP CURRENT_TIME "%H:%M:%S")
|
||||
message (STATUS "Info: \(${CURRENT_TIME}\) Checking headers in inc folder...")
|
||||
@@ -421,7 +424,7 @@ function (OCCT_TOOLKIT_DEP TOOLKIT_NAME TOOLKIT_DEPS)
|
||||
set (LOCAL_TOOLKIT_DEPS)
|
||||
foreach (FILE_CONTENT_LINE ${FILE_CONTENT})
|
||||
string (REGEX MATCH "^TK" TK_FOUND ${FILE_CONTENT_LINE})
|
||||
if ("${FILE_CONTENT_LINE}" STREQUAL "DRAWEXE" OR NOT "${TK_FOUND}" STREQUAL "")
|
||||
if ("x${FILE_CONTENT_LINE}" STREQUAL "xDRAWEXE" OR NOT "${TK_FOUND}" STREQUAL "")
|
||||
list (APPEND LOCAL_TOOLKIT_DEPS ${FILE_CONTENT_LINE})
|
||||
endif()
|
||||
endforeach()
|
||||
|
77
adm/cmake/occt_resources.cmake
Normal file
@@ -0,0 +1,77 @@
|
||||
# OCCT resource files generation
|
||||
|
||||
macro (OCCT_GENERATE_CONTENT_ONLY CurrentResource)
|
||||
set (RESOURCE_FILES)
|
||||
set (isResDirectory FALSE)
|
||||
if (IS_DIRECTORY "${CMAKE_SOURCE_DIR}/src/${CurrentResource}")
|
||||
file (STRINGS "${CMAKE_SOURCE_DIR}/src/${CurrentResource}/FILES" RESOURCE_FILES)
|
||||
set (CurrentResource_Directory "${CurrentResource}")
|
||||
set (isResDirectory TRUE)
|
||||
else()
|
||||
get_filename_component (CurrentResource_Name "${CurrentResource}" NAME)
|
||||
list (APPEND RESOURCE_FILES "res:::${CurrentResource_Name}")
|
||||
get_filename_component (CurrentResource_Directory "${CurrentResource}" DIRECTORY)
|
||||
endif()
|
||||
|
||||
# Add current toolkit into RESOURCE_TOOLKITS array to copy it to the BUILD directory
|
||||
list (APPEND RESOURCE_TOOLKITS "${CurrentResource_Directory}")
|
||||
list (REMOVE_DUPLICATES RESOURCE_TOOLKITS)
|
||||
|
||||
if (BUILD_RESOURCES)
|
||||
foreach (RESOURCE_FILE ${RESOURCE_FILES})
|
||||
string (REGEX MATCH "^[^:]+:::" IS_RESOURCE "${RESOURCE_FILE}")
|
||||
if (IS_RESOURCE)
|
||||
string (REGEX REPLACE "[^:]+:+" "" RESOURCE_FILE "${RESOURCE_FILE}")
|
||||
|
||||
get_filename_component (CurrentResource_FileName "${RESOURCE_FILE}" NAME)
|
||||
string (REPLACE "." "_" CurrentResource_FileName "${CurrentResource_FileName}")
|
||||
set (HEADER_FILE_NAME "${CurrentResource_Directory}_${CurrentResource_FileName}.pxx")
|
||||
|
||||
set (toProcessResFile TRUE)
|
||||
if (isResDirectory)
|
||||
list (FIND RESOURCE_FILES "${HEADER_FILE_NAME}" aResIndex)
|
||||
if ("${aResIndex}" STREQUAL "-1")
|
||||
set (toProcessResFile FALSE)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (toProcessResFile)
|
||||
message(STATUS "Info. Generating header file from resource file: ${CMAKE_SOURCE_DIR}/src/${CurrentResource_Directory}/${RESOURCE_FILE}")
|
||||
|
||||
# generate content for header file
|
||||
set (OCCT_HEADER_FILE_CONTENT "// This file has been automatically generated from resource file src/${CurrentResource_Directory}/${RESOURCE_FILE}\n\n")
|
||||
|
||||
# read resource file
|
||||
file (STRINGS "${CMAKE_SOURCE_DIR}/src/${CurrentResource_Directory}/${RESOURCE_FILE}" RESOURCE_FILE_LINES_LIST)
|
||||
|
||||
set (OCCT_HEADER_FILE_CONTENT "${OCCT_HEADER_FILE_CONTENT}static const char ${CurrentResource_Directory}_${CurrentResource_FileName}[] =")
|
||||
foreach (line IN LISTS RESOURCE_FILE_LINES_LIST)
|
||||
string (REPLACE "\"" "\\\"" line "${line}")
|
||||
set (OCCT_HEADER_FILE_CONTENT "${OCCT_HEADER_FILE_CONTENT}\n \"${line}\\n\"")
|
||||
endforeach()
|
||||
set (OCCT_HEADER_FILE_CONTENT "${OCCT_HEADER_FILE_CONTENT};")
|
||||
|
||||
# Save generated content to header file
|
||||
set (HEADER_FILE "${CMAKE_SOURCE_DIR}/src/${CurrentResource_Directory}/${HEADER_FILE_NAME}")
|
||||
if (EXISTS "${HEADER_FILE}")
|
||||
file (REMOVE "${HEADER_FILE}")
|
||||
endif()
|
||||
configure_file ("${CMAKE_SOURCE_DIR}/adm/templates/header.in" "${HEADER_FILE}" @ONLY NEWLINE_STYLE LF)
|
||||
endif()
|
||||
endif()
|
||||
endforeach()
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
|
||||
FILE_TO_LIST ("adm/RESOURCES" RESOURCES)
|
||||
foreach (CurrentResource ${RESOURCES})
|
||||
get_filename_component (CurrentResource_FileName "${CurrentResource}" NAME)
|
||||
if ("${CurrentResource_FileName}" STREQUAL TObj.msg OR
|
||||
"${CurrentResource_FileName}" STREQUAL Units.dat OR
|
||||
"${CurrentResource}" STREQUAL XSMessage OR
|
||||
"${CurrentResource}" STREQUAL SHMessage OR
|
||||
"${CurrentResource}" STREQUAL Shaders)
|
||||
OCCT_GENERATE_CONTENT_ONLY ("${CurrentResource}")
|
||||
endif()
|
||||
endforeach()
|
@@ -147,14 +147,14 @@ if ("${PROJECT_NAME}" STREQUAL "DRAWEXE")
|
||||
add_executable (${PROJECT_NAME} ${USED_SRCFILES} ${USED_INCFILES} ${USED_RCFILE})
|
||||
|
||||
install (TARGETS ${PROJECT_NAME}
|
||||
DESTINATION "${INSTALL_DIR}/${INSTALL_DIR_BIN}\${OCCT_INSTALL_BIN_LETTER}")
|
||||
DESTINATION "${INSTALL_DIR_BIN}\${OCCT_INSTALL_BIN_LETTER}")
|
||||
else()
|
||||
add_library (${PROJECT_NAME} ${USED_SRCFILES} ${USED_INCFILES} ${USED_RCFILE})
|
||||
|
||||
if (MSVC)
|
||||
install (FILES ${CMAKE_BINARY_DIR}/${OS_WITH_BIT}/${COMPILER}/bind/${PROJECT_NAME}.pdb
|
||||
CONFIGURATIONS Debug
|
||||
DESTINATION "${INSTALL_DIR}/${INSTALL_DIR_BIN}\${OCCT_INSTALL_BIN_LETTER}")
|
||||
DESTINATION "${INSTALL_DIR_BIN}\${OCCT_INSTALL_BIN_LETTER}")
|
||||
endif()
|
||||
|
||||
if (BUILD_SHARED_LIBS AND NOT "${BUILD_SHARED_LIBRARY_NAME_POSTFIX}" STREQUAL "")
|
||||
@@ -219,10 +219,39 @@ foreach (USED_ITEM ${USED_EXTERNLIB_AND_TOOLKITS})
|
||||
message (STATUS "Info: ${USED_ITEM} from ${PROJECT_NAME} skipped due to it is empty")
|
||||
else() # get CSF_ value
|
||||
set (CURRENT_CSF ${${USED_ITEM}})
|
||||
if (NOT "${CURRENT_CSF}" STREQUAL "")
|
||||
# prepare a list from a string with whitespaces
|
||||
if (NOT "x${CURRENT_CSF}" STREQUAL "x")
|
||||
set (LIBRARY_FROM_CACHE 0)
|
||||
separate_arguments (CURRENT_CSF)
|
||||
list (APPEND USED_EXTERNAL_LIBS_BY_CURRENT_PROJECT ${CURRENT_CSF})
|
||||
foreach (CSF_LIBRARY ${CURRENT_CSF})
|
||||
string (TOLOWER "${CSF_LIBRARY}" CSF_LIBRARY)
|
||||
string (REPLACE "+" "[+]" CSF_LIBRARY "${CSF_LIBRARY}")
|
||||
string (REPLACE "." "" CSF_LIBRARY "${CSF_LIBRARY}")
|
||||
get_cmake_property(ALL_CACHE_VARIABLES CACHE_VARIABLES)
|
||||
string (REGEX MATCHALL "(^|;)3RDPARTY_[^;]+_LIBRARY[^;]*" ALL_CACHE_VARIABLES "${ALL_CACHE_VARIABLES}")
|
||||
foreach (CACHE_VARIABLE ${ALL_CACHE_VARIABLES})
|
||||
set (CURRENT_CACHE_LIBRARY ${${CACHE_VARIABLE}})
|
||||
string (TOLOWER "${CACHE_VARIABLE}" CACHE_VARIABLE)
|
||||
|
||||
if (EXISTS "${CURRENT_CACHE_LIBRARY}" AND NOT IS_DIRECTORY "${CURRENT_CACHE_LIBRARY}")
|
||||
string (REGEX MATCH "_${CSF_LIBRARY}$" IS_ENDING "${CACHE_VARIABLE}")
|
||||
string (REGEX MATCH "^([a-z]+)" CSF_WO_VERSION "${CSF_LIBRARY}")
|
||||
string (REGEX MATCH "_${CSF_WO_VERSION}$" IS_ENDING_WO_VERSION "${CACHE_VARIABLE}")
|
||||
if ("3rdparty_${CSF_LIBRARY}_library" STREQUAL "${CACHE_VARIABLE}" OR
|
||||
"3rdparty_${CSF_WO_VERSION}_library" STREQUAL "${CACHE_VARIABLE}" OR
|
||||
NOT "x${IS_ENDING}" STREQUAL "x" OR
|
||||
NOT "x${IS_ENDING_WO_VERSION}" STREQUAL "x")
|
||||
list (APPEND USED_EXTERNAL_LIBS_BY_CURRENT_PROJECT "${CURRENT_CACHE_LIBRARY}")
|
||||
set (LIBRARY_FROM_CACHE 1)
|
||||
endif()
|
||||
endif()
|
||||
endforeach()
|
||||
endforeach()
|
||||
|
||||
if (NOT ${LIBRARY_FROM_CACHE})
|
||||
# prepare a list from a string with whitespaces
|
||||
separate_arguments (CURRENT_CSF)
|
||||
list (APPEND USED_EXTERNAL_LIBS_BY_CURRENT_PROJECT ${CURRENT_CSF})
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
@@ -70,49 +70,49 @@ else()
|
||||
endif()
|
||||
|
||||
# common steps for tbb and tbbmalloc
|
||||
macro (TBB_PRODUCT_SEARCH PRODUCT_NAME)
|
||||
macro (TBB_PRODUCT_SEARCH PRODUCT_LIBRARY_NAME)
|
||||
|
||||
string (TOLOWER ${PRODUCT_NAME} lower_PRODUCT_NAME)
|
||||
string (TOUPPER ${PRODUCT_LIBRARY_NAME} upper_PRODUCT_LIBRARY_NAME)
|
||||
|
||||
# define required tbb/tbbmalloc variables
|
||||
if (NOT DEFINED 3RDPARTY_${PRODUCT_NAME}_LIBRARY OR NOT 3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR OR NOT EXISTS "${3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR}")
|
||||
set (3RDPARTY_${PRODUCT_NAME}_LIBRARY "" CACHE FILEPATH "${PRODUCT_NAME} library" FORCE)
|
||||
if (NOT DEFINED 3RDPARTY_${upper_PRODUCT_LIBRARY_NAME}_LIBRARY OR NOT 3RDPARTY_${upper_PRODUCT_LIBRARY_NAME}_LIBRARY_DIR OR NOT EXISTS "${3RDPARTY_${upper_PRODUCT_LIBRARY_NAME}_LIBRARY_DIR}")
|
||||
set (3RDPARTY_${upper_PRODUCT_LIBRARY_NAME}_LIBRARY "" CACHE FILEPATH "${upper_PRODUCT_LIBRARY_NAME} library" FORCE)
|
||||
endif()
|
||||
|
||||
if (NOT DEFINED 3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR)
|
||||
set (3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR "" CACHE PATH "The directory containing ${PRODUCT_NAME} library")
|
||||
if (NOT DEFINED 3RDPARTY_${upper_PRODUCT_LIBRARY_NAME}_LIBRARY_DIR)
|
||||
set (3RDPARTY_${upper_PRODUCT_LIBRARY_NAME}_LIBRARY_DIR "" CACHE PATH "The directory containing ${upper_PRODUCT_LIBRARY_NAME} library")
|
||||
endif()
|
||||
|
||||
if (WIN32)
|
||||
if (NOT DEFINED 3RDPARTY_${PRODUCT_NAME}_DLL OR NOT 3RDPARTY_${PRODUCT_NAME}_DLL_DIR OR NOT EXISTS "${3RDPARTY_${PRODUCT_NAME}_DLL_DIR}")
|
||||
set (3RDPARTY_${PRODUCT_NAME}_DLL "" CACHE FILEPATH "${PRODUCT_NAME} shared library" FORCE)
|
||||
if (NOT DEFINED 3RDPARTY_${upper_PRODUCT_LIBRARY_NAME}_DLL OR NOT 3RDPARTY_${upper_PRODUCT_LIBRARY_NAME}_DLL_DIR OR NOT EXISTS "${3RDPARTY_${upper_PRODUCT_LIBRARY_NAME}_DLL_DIR}")
|
||||
set (3RDPARTY_${upper_PRODUCT_LIBRARY_NAME}_DLL "" CACHE FILEPATH "${upper_PRODUCT_LIBRARY_NAME} shared library" FORCE)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (WIN32 AND NOT DEFINED 3RDPARTY_${PRODUCT_NAME}_DLL_DIR)
|
||||
set (3RDPARTY_${PRODUCT_NAME}_DLL_DIR "" CACHE PATH "The directory containing ${PRODUCT_NAME} shared library")
|
||||
if (WIN32 AND NOT DEFINED 3RDPARTY_${upper_PRODUCT_LIBRARY_NAME}_DLL_DIR)
|
||||
set (3RDPARTY_${upper_PRODUCT_LIBRARY_NAME}_DLL_DIR "" CACHE PATH "The directory containing ${upper_PRODUCT_LIBRARY_NAME} shared library")
|
||||
endif()
|
||||
|
||||
# check 3RDPARTY_${PRODUCT_NAME}_ paths for consistency with specified 3RDPARTY_TBB_DIR
|
||||
# check 3RDPARTY_${upper_PRODUCT_LIBRARY_NAME}_ paths for consistency with specified 3RDPARTY_TBB_DIR
|
||||
if (3RDPARTY_TBB_DIR AND EXISTS "${3RDPARTY_TBB_DIR}")
|
||||
CHECK_PATH_FOR_CONSISTENCY (3RDPARTY_TBB_DIR 3RDPARTY_${PRODUCT_NAME}_LIBRARY FILEPATH "the path to ${PRODUCT_NAME} library")
|
||||
CHECK_PATH_FOR_CONSISTENCY (3RDPARTY_TBB_DIR 3RDPARTY_${upper_PRODUCT_LIBRARY_NAME}_LIBRARY FILEPATH "the path to ${upper_PRODUCT_LIBRARY_NAME} library")
|
||||
|
||||
if (3RDPARTY_${PRODUCT_NAME}_LIBRARY AND EXISTS "${3RDPARTY_${PRODUCT_NAME}_LIBRARY}")
|
||||
get_filename_component (3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR "${3RDPARTY_${PRODUCT_NAME}_LIBRARY}" PATH)
|
||||
set (3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR "${3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR}" CACHE PATH "The directory containing ${PRODUCT_NAME} library" FORCE)
|
||||
if (3RDPARTY_${upper_PRODUCT_LIBRARY_NAME}_LIBRARY AND EXISTS "${3RDPARTY_${upper_PRODUCT_LIBRARY_NAME}_LIBRARY}")
|
||||
get_filename_component (3RDPARTY_${upper_PRODUCT_LIBRARY_NAME}_LIBRARY_DIR "${3RDPARTY_${upper_PRODUCT_LIBRARY_NAME}_LIBRARY}" PATH)
|
||||
set (3RDPARTY_${upper_PRODUCT_LIBRARY_NAME}_LIBRARY_DIR "${3RDPARTY_${upper_PRODUCT_LIBRARY_NAME}_LIBRARY_DIR}" CACHE PATH "The directory containing ${upper_PRODUCT_LIBRARY_NAME} library" FORCE)
|
||||
else()
|
||||
CHECK_PATH_FOR_CONSISTENCY (3RDPARTY_TBB_DIR 3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR PATH "The directory containing ${PRODUCT_NAME} library")
|
||||
CHECK_PATH_FOR_CONSISTENCY (3RDPARTY_TBB_DIR 3RDPARTY_${upper_PRODUCT_LIBRARY_NAME}_LIBRARY_DIR PATH "The directory containing ${upper_PRODUCT_LIBRARY_NAME} library")
|
||||
endif()
|
||||
|
||||
if (WIN32)
|
||||
CHECK_PATH_FOR_CONSISTENCY (3RDPARTY_TBB_DIR 3RDPARTY_${PRODUCT_NAME}_DLL FILEPATH "the path to ${PRODUCT_NAME} shared library")
|
||||
CHECK_PATH_FOR_CONSISTENCY (3RDPARTY_TBB_DIR 3RDPARTY_${upper_PRODUCT_LIBRARY_NAME}_DLL FILEPATH "the path to ${upper_PRODUCT_LIBRARY_NAME} shared library")
|
||||
|
||||
if (3RDPARTY_${PRODUCT_NAME}_DLL AND EXISTS "${3RDPARTY_${PRODUCT_NAME}_DLL}")
|
||||
get_filename_component (3RDPARTY_${PRODUCT_NAME}_DLL_DIR "${3RDPARTY_${PRODUCT_NAME}_DLL}" PATH)
|
||||
set (3RDPARTY_${PRODUCT_NAME}_DLL_DIR "${3RDPARTY_${PRODUCT_NAME}_DLL_DIR}" CACHE PATH "The directory containing ${PRODUCT_NAME} shared library" FORCE)
|
||||
if (3RDPARTY_${upper_PRODUCT_LIBRARY_NAME}_DLL AND EXISTS "${3RDPARTY_${upper_PRODUCT_LIBRARY_NAME}_DLL}")
|
||||
get_filename_component (3RDPARTY_${upper_PRODUCT_LIBRARY_NAME}_DLL_DIR "${3RDPARTY_${upper_PRODUCT_LIBRARY_NAME}_DLL}" PATH)
|
||||
set (3RDPARTY_${upper_PRODUCT_LIBRARY_NAME}_DLL_DIR "${3RDPARTY_${upper_PRODUCT_LIBRARY_NAME}_DLL_DIR}" CACHE PATH "The directory containing ${upper_PRODUCT_LIBRARY_NAME} shared library" FORCE)
|
||||
else()
|
||||
|
||||
CHECK_PATH_FOR_CONSISTENCY (3RDPARTY_TBB_DIR 3RDPARTY_${PRODUCT_NAME}_DLL_DIR PATH "The directory containing ${PRODUCT_NAME} shared library")
|
||||
CHECK_PATH_FOR_CONSISTENCY (3RDPARTY_TBB_DIR 3RDPARTY_${upper_PRODUCT_LIBRARY_NAME}_DLL_DIR PATH "The directory containing ${upper_PRODUCT_LIBRARY_NAME} shared library")
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
@@ -121,112 +121,112 @@ macro (TBB_PRODUCT_SEARCH PRODUCT_NAME)
|
||||
OCCT_MAKE_COMPILER_BITNESS()
|
||||
|
||||
if (${COMPILER_BITNESS} EQUAL 32)
|
||||
set (${PRODUCT_NAME}_ARCH_NAME ia32)
|
||||
set (${upper_PRODUCT_LIBRARY_NAME}_ARCH_NAME ia32)
|
||||
else()
|
||||
set (${PRODUCT_NAME}_ARCH_NAME intel64)
|
||||
set (${upper_PRODUCT_LIBRARY_NAME}_ARCH_NAME intel64)
|
||||
endif()
|
||||
|
||||
# tbb/tbbmalloc library
|
||||
if (NOT 3RDPARTY_${PRODUCT_NAME}_LIBRARY OR NOT EXISTS "${3RDPARTY_${PRODUCT_NAME}_LIBRARY}")
|
||||
if (NOT 3RDPARTY_${upper_PRODUCT_LIBRARY_NAME}_LIBRARY OR NOT EXISTS "${3RDPARTY_${upper_PRODUCT_LIBRARY_NAME}_LIBRARY}")
|
||||
|
||||
set (CMAKE_FIND_LIBRARY_SUFFIXES .lib .so .dylib .a)
|
||||
set (PRODUCT_PATH_SUFFIXES lib ${lower_PRODUCT_NAME})
|
||||
set (PRODUCT_PATH_SUFFIXES lib ${PRODUCT_LIBRARY_NAME})
|
||||
|
||||
# set 3RDPARTY_${PRODUCT_NAME}_LIBRARY as notfound, otherwise find_library can't assign a new value to 3RDPARTY_${PRODUCT_NAME}_LIBRARY
|
||||
set (3RDPARTY_${PRODUCT_NAME}_LIBRARY "3RDPARTY_${PRODUCT_NAME}_LIBRARY-NOTFOUND" CACHE FILEPATH "The path to ${PRODUCT_NAME} library" FORCE)
|
||||
# set 3RDPARTY_${upper_PRODUCT_LIBRARY_NAME}_LIBRARY as notfound, otherwise find_library can't assign a new value to 3RDPARTY_${upper_PRODUCT_LIBRARY_NAME}_LIBRARY
|
||||
set (3RDPARTY_${upper_PRODUCT_LIBRARY_NAME}_LIBRARY "3RDPARTY_${upper_PRODUCT_LIBRARY_NAME}_LIBRARY-NOTFOUND" CACHE FILEPATH "The path to ${upper_PRODUCT_LIBRARY_NAME} library" FORCE)
|
||||
|
||||
if (3RDPARTY_TBB_DIR AND EXISTS "${3RDPARTY_TBB_DIR}")
|
||||
if (NOT EXISTS "${3RDPARTY_TBB_DIR}/lib/${${PRODUCT_NAME}_ARCH_NAME}/${COMPILER}")
|
||||
if (EXISTS "${3RDPARTY_TBB_DIR}/lib/${${PRODUCT_NAME}_ARCH_NAME}")
|
||||
file (GLOB ${PRODUCT_NAME}_COMPILER_LIST "${3RDPARTY_TBB_DIR}/lib/${${PRODUCT_NAME}_ARCH_NAME}/*")
|
||||
if (${PRODUCT_NAME}_COMPILER_LIST)
|
||||
list (GET ${PRODUCT_NAME}_COMPILER_LIST -1 THE_MOST_FRESH_COMPILER_VERSION)
|
||||
if (NOT EXISTS "${3RDPARTY_TBB_DIR}/lib/${${upper_PRODUCT_LIBRARY_NAME}_ARCH_NAME}/${COMPILER}")
|
||||
if (EXISTS "${3RDPARTY_TBB_DIR}/lib/${${upper_PRODUCT_LIBRARY_NAME}_ARCH_NAME}")
|
||||
file (GLOB ${upper_PRODUCT_LIBRARY_NAME}_COMPILER_LIST "${3RDPARTY_TBB_DIR}/lib/${${upper_PRODUCT_LIBRARY_NAME}_ARCH_NAME}/*")
|
||||
if (${upper_PRODUCT_LIBRARY_NAME}_COMPILER_LIST)
|
||||
list (GET ${upper_PRODUCT_LIBRARY_NAME}_COMPILER_LIST -1 THE_MOST_FRESH_COMPILER_VERSION)
|
||||
if (THE_MOST_FRESH_COMPILER_VERSION)
|
||||
get_filename_component (THE_MOST_FRESH_COMPILER_VERSION_NAME "${THE_MOST_FRESH_COMPILER_VERSION}" NAME)
|
||||
set (PRODUCT_PATH_SUFFIXES lib ${lower_PRODUCT_NAME} lib/${${PRODUCT_NAME}_ARCH_NAME}/${THE_MOST_FRESH_COMPILER_VERSION_NAME})
|
||||
set (PRODUCT_PATH_SUFFIXES lib ${PRODUCT_LIBRARY_NAME} lib/${${upper_PRODUCT_LIBRARY_NAME}_ARCH_NAME}/${THE_MOST_FRESH_COMPILER_VERSION_NAME})
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
else()
|
||||
set (PRODUCT_PATH_SUFFIXES lib ${lower_PRODUCT_NAME} lib/${${PRODUCT_NAME}_ARCH_NAME}/${COMPILER})
|
||||
set (PRODUCT_PATH_SUFFIXES lib ${PRODUCT_LIBRARY_NAME} lib/${${upper_PRODUCT_LIBRARY_NAME}_ARCH_NAME}/${COMPILER})
|
||||
endif()
|
||||
|
||||
find_library (3RDPARTY_${PRODUCT_NAME}_LIBRARY ${lower_PRODUCT_NAME}
|
||||
PATHS "${3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR}" "${3RDPARTY_TBB_DIR}"
|
||||
find_library (3RDPARTY_${upper_PRODUCT_LIBRARY_NAME}_LIBRARY ${PRODUCT_LIBRARY_NAME}
|
||||
PATHS "${3RDPARTY_${upper_PRODUCT_LIBRARY_NAME}_LIBRARY_DIR}" "${3RDPARTY_TBB_DIR}"
|
||||
PATH_SUFFIXES ${PRODUCT_PATH_SUFFIXES}
|
||||
CMAKE_FIND_ROOT_PATH_BOTH
|
||||
NO_DEFAULT_PATH)
|
||||
else()
|
||||
find_library (3RDPARTY_${PRODUCT_NAME}_LIBRARY ${lower_PRODUCT_NAME}
|
||||
find_library (3RDPARTY_${upper_PRODUCT_LIBRARY_NAME}_LIBRARY ${PRODUCT_LIBRARY_NAME}
|
||||
PATH_SUFFIXES ${PRODUCT_PATH_SUFFIXES}
|
||||
CMAKE_FIND_ROOT_PATH_BOTH)
|
||||
endif()
|
||||
|
||||
if (3RDPARTY_${PRODUCT_NAME}_LIBRARY AND EXISTS "${3RDPARTY_${PRODUCT_NAME}_LIBRARY}")
|
||||
get_filename_component (3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR "${3RDPARTY_${PRODUCT_NAME}_LIBRARY}" PATH)
|
||||
set (3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR "${3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR}" CACHE PATH "The directory containing ${PRODUCT_NAME} library" FORCE)
|
||||
if (3RDPARTY_${upper_PRODUCT_LIBRARY_NAME}_LIBRARY AND EXISTS "${3RDPARTY_${upper_PRODUCT_LIBRARY_NAME}_LIBRARY}")
|
||||
get_filename_component (3RDPARTY_${upper_PRODUCT_LIBRARY_NAME}_LIBRARY_DIR "${3RDPARTY_${upper_PRODUCT_LIBRARY_NAME}_LIBRARY}" PATH)
|
||||
set (3RDPARTY_${upper_PRODUCT_LIBRARY_NAME}_LIBRARY_DIR "${3RDPARTY_${upper_PRODUCT_LIBRARY_NAME}_LIBRARY_DIR}" CACHE PATH "The directory containing ${upper_PRODUCT_LIBRARY_NAME} library" FORCE)
|
||||
else()
|
||||
set (3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR "" CACHE PATH "The directory containing ${PRODUCT_NAME} library" FORCE)
|
||||
set (3RDPARTY_${upper_PRODUCT_LIBRARY_NAME}_LIBRARY_DIR "" CACHE PATH "The directory containing ${upper_PRODUCT_LIBRARY_NAME} library" FORCE)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR AND EXISTS "${3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR}")
|
||||
list (APPEND 3RDPARTY_LIBRARY_DIRS "${3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR}")
|
||||
if (3RDPARTY_${upper_PRODUCT_LIBRARY_NAME}_LIBRARY_DIR AND EXISTS "${3RDPARTY_${upper_PRODUCT_LIBRARY_NAME}_LIBRARY_DIR}")
|
||||
list (APPEND 3RDPARTY_LIBRARY_DIRS "${3RDPARTY_${upper_PRODUCT_LIBRARY_NAME}_LIBRARY_DIR}")
|
||||
else()
|
||||
list (APPEND 3RDPARTY_NOT_INCLUDED 3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR)
|
||||
list (APPEND 3RDPARTY_NOT_INCLUDED 3RDPARTY_${upper_PRODUCT_LIBRARY_NAME}_LIBRARY_DIR)
|
||||
|
||||
set (3RDPARTY_${PRODUCT_NAME}_LIBRARY "" CACHE FILEPATH "The path to ${PRODUCT_NAME} library" FORCE)
|
||||
set (3RDPARTY_${upper_PRODUCT_LIBRARY_NAME}_LIBRARY "" CACHE FILEPATH "The path to ${upper_PRODUCT_LIBRARY_NAME} library" FORCE)
|
||||
endif()
|
||||
|
||||
# tbb/tbbmalloc shared library
|
||||
if (WIN32)
|
||||
if (NOT 3RDPARTY_${PRODUCT_NAME}_DLL OR NOT EXISTS "${3RDPARTY_${PRODUCT_NAME}_DLL}")
|
||||
if (NOT 3RDPARTY_${upper_PRODUCT_LIBRARY_NAME}_DLL OR NOT EXISTS "${3RDPARTY_${upper_PRODUCT_LIBRARY_NAME}_DLL}")
|
||||
set (CMAKE_FIND_LIBRARY_SUFFIXES .dll)
|
||||
set (PRODUCT_PATH_SUFFIXES bin)
|
||||
|
||||
# set 3RDPARTY_${PRODUCT_NAME}_DLL as notfound, otherwise find_library can't assign a new value to 3RDPARTY_${PRODUCT_NAME}_DLL
|
||||
set (3RDPARTY_${PRODUCT_NAME}_DLL "3RDPARTY_${PRODUCT_NAME}_DLL-NOTFOUND" CACHE FILEPATH "${PRODUCT_NAME} shared library" FORCE)
|
||||
# set 3RDPARTY_${upper_PRODUCT_LIBRARY_NAME}_DLL as notfound, otherwise find_library can't assign a new value to 3RDPARTY_${upper_PRODUCT_LIBRARY_NAME}_DLL
|
||||
set (3RDPARTY_${upper_PRODUCT_LIBRARY_NAME}_DLL "3RDPARTY_${upper_PRODUCT_LIBRARY_NAME}_DLL-NOTFOUND" CACHE FILEPATH "${upper_PRODUCT_LIBRARY_NAME} shared library" FORCE)
|
||||
|
||||
if (3RDPARTY_TBB_DIR AND EXISTS "${3RDPARTY_TBB_DIR}")
|
||||
if (NOT EXISTS "${3RDPARTY_TBB_DIR}/bin/${${PRODUCT_NAME}_ARCH_NAME}/${COMPILER}")
|
||||
if (EXISTS "${3RDPARTY_TBB_DIR}/bin/${${PRODUCT_NAME}_ARCH_NAME}")
|
||||
file (GLOB ${PRODUCT_NAME}_COMPILER_LIST "${3RDPARTY_TBB_DIR}/bin/${${PRODUCT_NAME}_ARCH_NAME}/*")
|
||||
if (${PRODUCT_NAME}_COMPILER_LIST)
|
||||
list (GET ${PRODUCT_NAME}_COMPILER_LIST -1 THE_MOST_FRESH_COMPILER_VERSION)
|
||||
if (NOT EXISTS "${3RDPARTY_TBB_DIR}/bin/${${upper_PRODUCT_LIBRARY_NAME}_ARCH_NAME}/${COMPILER}")
|
||||
if (EXISTS "${3RDPARTY_TBB_DIR}/bin/${${upper_PRODUCT_LIBRARY_NAME}_ARCH_NAME}")
|
||||
file (GLOB ${upper_PRODUCT_LIBRARY_NAME}_COMPILER_LIST "${3RDPARTY_TBB_DIR}/bin/${${upper_PRODUCT_LIBRARY_NAME}_ARCH_NAME}/*")
|
||||
if (${upper_PRODUCT_LIBRARY_NAME}_COMPILER_LIST)
|
||||
list (GET ${upper_PRODUCT_LIBRARY_NAME}_COMPILER_LIST -1 THE_MOST_FRESH_COMPILER_VERSION)
|
||||
if (THE_MOST_FRESH_COMPILER_VERSION)
|
||||
get_filename_component (THE_MOST_FRESH_COMPILER_VERSION_NAME "${THE_MOST_FRESH_COMPILER_VERSION}" NAME)
|
||||
set (PRODUCT_PATH_SUFFIXES bin bin/${${PRODUCT_NAME}_ARCH_NAME}/${THE_MOST_FRESH_COMPILER_VERSION_NAME})
|
||||
set (PRODUCT_PATH_SUFFIXES bin bin/${${upper_PRODUCT_LIBRARY_NAME}_ARCH_NAME}/${THE_MOST_FRESH_COMPILER_VERSION_NAME})
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
else()
|
||||
set (PRODUCT_PATH_SUFFIXES bin bin/${${PRODUCT_NAME}_ARCH_NAME}/${COMPILER})
|
||||
set (PRODUCT_PATH_SUFFIXES bin bin/${${upper_PRODUCT_LIBRARY_NAME}_ARCH_NAME}/${COMPILER})
|
||||
endif()
|
||||
|
||||
if (3RDPARTY_TBB_DIR AND EXISTS "${3RDPARTY_TBB_DIR}")
|
||||
find_library (3RDPARTY_${PRODUCT_NAME}_DLL ${lower_PRODUCT_NAME}
|
||||
find_library (3RDPARTY_${upper_PRODUCT_LIBRARY_NAME}_DLL ${PRODUCT_LIBRARY_NAME}
|
||||
PATHS "${3RDPARTY_TBB_DIR}"
|
||||
PATH_SUFFIXES ${PRODUCT_PATH_SUFFIXES}
|
||||
NO_DEFAULT_PATH)
|
||||
else()
|
||||
find_library (3RDPARTY_${PRODUCT_NAME}_DLL ${lower_PRODUCT_NAME} PATH_SUFFIXES ${PRODUCT_PATH_SUFFIXES})
|
||||
find_library (3RDPARTY_${upper_PRODUCT_LIBRARY_NAME}_DLL ${PRODUCT_LIBRARY_NAME} PATH_SUFFIXES ${PRODUCT_PATH_SUFFIXES})
|
||||
endif()
|
||||
|
||||
if (3RDPARTY_${PRODUCT_NAME}_DLL AND EXISTS "${3RDPARTY_${PRODUCT_NAME}_DLL}")
|
||||
get_filename_component (3RDPARTY_${PRODUCT_NAME}_DLL_DIR "${3RDPARTY_${PRODUCT_NAME}_DLL}" PATH)
|
||||
set (3RDPARTY_${PRODUCT_NAME}_DLL_DIR "${3RDPARTY_${PRODUCT_NAME}_DLL_DIR}" CACHE PATH "The directory containing ${PRODUCT_NAME} library" FORCE)
|
||||
if (3RDPARTY_${upper_PRODUCT_LIBRARY_NAME}_DLL AND EXISTS "${3RDPARTY_${upper_PRODUCT_LIBRARY_NAME}_DLL}")
|
||||
get_filename_component (3RDPARTY_${upper_PRODUCT_LIBRARY_NAME}_DLL_DIR "${3RDPARTY_${upper_PRODUCT_LIBRARY_NAME}_DLL}" PATH)
|
||||
set (3RDPARTY_${upper_PRODUCT_LIBRARY_NAME}_DLL_DIR "${3RDPARTY_${upper_PRODUCT_LIBRARY_NAME}_DLL_DIR}" CACHE PATH "The directory containing ${upper_PRODUCT_LIBRARY_NAME} library" FORCE)
|
||||
else()
|
||||
set (3RDPARTY_${PRODUCT_NAME}_DLL_DIR "" CACHE PATH "The directory containing ${PRODUCT_NAME} shared library" FORCE)
|
||||
set (3RDPARTY_${upper_PRODUCT_LIBRARY_NAME}_DLL_DIR "" CACHE PATH "The directory containing ${upper_PRODUCT_LIBRARY_NAME} shared library" FORCE)
|
||||
|
||||
set (3RDPARTY_${PRODUCT_NAME}_DLL "" CACHE FILEPATH "${PRODUCT_NAME} shared library" FORCE)
|
||||
set (3RDPARTY_${upper_PRODUCT_LIBRARY_NAME}_DLL "" CACHE FILEPATH "${upper_PRODUCT_LIBRARY_NAME} shared library" FORCE)
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (3RDPARTY_${PRODUCT_NAME}_DLL_DIR OR EXISTS "${3RDPARTY_${PRODUCT_NAME}_DLL_DIR}")
|
||||
list (APPEND 3RDPARTY_DLL_DIRS "${3RDPARTY_${PRODUCT_NAME}_DLL_DIR}")
|
||||
if (3RDPARTY_${upper_PRODUCT_LIBRARY_NAME}_DLL_DIR OR EXISTS "${3RDPARTY_${upper_PRODUCT_LIBRARY_NAME}_DLL_DIR}")
|
||||
list (APPEND 3RDPARTY_DLL_DIRS "${3RDPARTY_${upper_PRODUCT_LIBRARY_NAME}_DLL_DIR}")
|
||||
else()
|
||||
list (APPEND 3RDPARTY_NOT_INCLUDED 3RDPARTY_${PRODUCT_NAME}_DLL_DIR)
|
||||
list (APPEND 3RDPARTY_NOT_INCLUDED 3RDPARTY_${upper_PRODUCT_LIBRARY_NAME}_DLL_DIR)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
@@ -237,47 +237,49 @@ macro (TBB_PRODUCT_SEARCH PRODUCT_NAME)
|
||||
|
||||
if (WIN32)
|
||||
if (SINGLE_GENERATOR)
|
||||
install (FILES ${3RDPARTY_${PRODUCT_NAME}_DLL} DESTINATION "${INSTALL_DIR}/${INSTALL_DIR_BIN}")
|
||||
install (FILES ${3RDPARTY_${upper_PRODUCT_LIBRARY_NAME}_DLL} DESTINATION "${INSTALL_DIR_BIN}")
|
||||
else()
|
||||
install (FILES ${3RDPARTY_${PRODUCT_NAME}_DLL}
|
||||
install (FILES ${3RDPARTY_${upper_PRODUCT_LIBRARY_NAME}_DLL}
|
||||
CONFIGURATIONS Release
|
||||
DESTINATION "${INSTALL_DIR}/${INSTALL_DIR_BIN}")
|
||||
install (FILES ${3RDPARTY_${PRODUCT_NAME}_DLL}
|
||||
DESTINATION "${INSTALL_DIR_BIN}")
|
||||
install (FILES ${3RDPARTY_${upper_PRODUCT_LIBRARY_NAME}_DLL}
|
||||
CONFIGURATIONS RelWithDebInfo
|
||||
DESTINATION "${INSTALL_DIR}/${INSTALL_DIR_BIN}i")
|
||||
install (FILES ${3RDPARTY_${PRODUCT_NAME}_DLL}
|
||||
DESTINATION "${INSTALL_DIR_BIN}i")
|
||||
install (FILES ${3RDPARTY_${upper_PRODUCT_LIBRARY_NAME}_DLL}
|
||||
CONFIGURATIONS Debug
|
||||
DESTINATION "${INSTALL_DIR}/${INSTALL_DIR_BIN}d")
|
||||
DESTINATION "${INSTALL_DIR_BIN}d")
|
||||
endif()
|
||||
else()
|
||||
get_filename_component (PRODUCT_LIBRARY_NAME ${3RDPARTY_${PRODUCT_NAME}_LIBRARY} NAME)
|
||||
get_filename_component (PRODUCT_LIBRARY_NAME ${3RDPARTY_${upper_PRODUCT_LIBRARY_NAME}_LIBRARY} NAME)
|
||||
|
||||
if (SINGLE_GENERATOR)
|
||||
install (FILES ${3RDPARTY_${PRODUCT_NAME}_LIBRARY}.2
|
||||
DESTINATION "${INSTALL_DIR}/${INSTALL_DIR_LIB}"
|
||||
install (FILES ${3RDPARTY_${upper_PRODUCT_LIBRARY_NAME}_LIBRARY}.2
|
||||
DESTINATION "${INSTALL_DIR_LIB}"
|
||||
RENAME ${PRODUCT_LIBRARY_NAME}.2)
|
||||
else()
|
||||
install (FILES ${3RDPARTY_${PRODUCT_NAME}_LIBRARY}.2
|
||||
install (FILES ${3RDPARTY_${upper_PRODUCT_LIBRARY_NAME}_LIBRARY}.2
|
||||
CONFIGURATIONS Release
|
||||
DESTINATION "${INSTALL_DIR}/${INSTALL_DIR_LIB}"
|
||||
DESTINATION "${INSTALL_DIR_LIB}"
|
||||
RENAME ${PRODUCT_LIBRARY_NAME}.2)
|
||||
install (FILES ${3RDPARTY_${PRODUCT_NAME}_LIBRARY}.2
|
||||
install (FILES ${3RDPARTY_${upper_PRODUCT_LIBRARY_NAME}_LIBRARY}.2
|
||||
CONFIGURATIONS RelWithDebInfo
|
||||
DESTINATION "${INSTALL_DIR}/${INSTALL_DIR_LIB}i"
|
||||
DESTINATION "${INSTALL_DIR_LIB}i"
|
||||
RENAME ${PRODUCT_LIBRARY_NAME}.2)
|
||||
install (FILES ${3RDPARTY_${PRODUCT_NAME}_LIBRARY}.2
|
||||
install (FILES ${3RDPARTY_${upper_PRODUCT_LIBRARY_NAME}_LIBRARY}.2
|
||||
CONFIGURATIONS Debug
|
||||
DESTINATION "${INSTALL_DIR}/${INSTALL_DIR_LIB}d"
|
||||
DESTINATION "${INSTALL_DIR_LIB}d"
|
||||
RENAME ${PRODUCT_LIBRARY_NAME}.2)
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
mark_as_advanced (3RDPARTY_${PRODUCT_NAME}_LIBRARY 3RDPARTY_${PRODUCT_NAME}_DLL)
|
||||
mark_as_advanced (3RDPARTY_${upper_PRODUCT_LIBRARY_NAME}_LIBRARY 3RDPARTY_${upper_PRODUCT_LIBRARY_NAME}_DLL)
|
||||
endmacro()
|
||||
|
||||
if (BUILD_SHARED_LIBS)
|
||||
TBB_PRODUCT_SEARCH (TBB)
|
||||
TBB_PRODUCT_SEARCH (TBBMALLOC)
|
||||
separate_arguments (CSF_TBB)
|
||||
foreach (LIB IN LISTS CSF_TBB)
|
||||
TBB_PRODUCT_SEARCH (${LIB})
|
||||
endforeach()
|
||||
|
||||
if (INSTALL_TBB)
|
||||
set (USED_3RDPARTY_TBB_DIR "")
|
||||
|
@@ -93,9 +93,9 @@ if (BUILD_SHARED_LIBS)
|
||||
endif()
|
||||
|
||||
set (3RDPARTY_TCL_DLL "3RDPARTY_TCL_DLL-NOTFOUND" CACHE FILEPATH "TCL shared library" FORCE)
|
||||
find_library (3RDPARTY_TCL_DLL NAMES tcl86 tcl85
|
||||
PATHS "${DLL_FOLDER_FOR_SEARCH}"
|
||||
NO_DEFAULT_PATH)
|
||||
find_library (3RDPARTY_TCL_DLL NAMES ${CSF_TclLibs}
|
||||
PATHS "${DLL_FOLDER_FOR_SEARCH}"
|
||||
NO_DEFAULT_PATH)
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
@@ -106,14 +106,14 @@ if (BUILD_SHARED_LIBS)
|
||||
# tcl dir and library
|
||||
if (NOT 3RDPARTY_TCL_LIBRARY)
|
||||
set (3RDPARTY_TCL_LIBRARY "3RDPARTY_TCL_LIBRARY-NOTFOUND" CACHE FILEPATH "TCL library" FORCE)
|
||||
find_library (3RDPARTY_TCL_LIBRARY NAMES tcl8.6 tcl86 tcl8.5 tcl85
|
||||
PATHS "${3RDPARTY_TCL_LIBRARY_DIR}"
|
||||
NO_DEFAULT_PATH)
|
||||
find_library (3RDPARTY_TCL_LIBRARY NAMES ${CSF_TclLibs}
|
||||
PATHS "${3RDPARTY_TCL_LIBRARY_DIR}"
|
||||
NO_DEFAULT_PATH)
|
||||
|
||||
# search in another place if previous search doesn't find anything
|
||||
find_library (3RDPARTY_TCL_LIBRARY NAMES tcl8.6 tcl86 tcl8.5 tcl85
|
||||
PATHS "${3RDPARTY_TCL_DIR}/lib"
|
||||
NO_DEFAULT_PATH)
|
||||
find_library (3RDPARTY_TCL_LIBRARY NAMES ${CSF_TclLibs}
|
||||
PATHS "${3RDPARTY_TCL_DIR}/lib"
|
||||
NO_DEFAULT_PATH)
|
||||
|
||||
|
||||
if (NOT 3RDPARTY_TCL_LIBRARY OR NOT EXISTS "${3RDPARTY_TCL_LIBRARY}")
|
||||
@@ -161,8 +161,8 @@ if (BUILD_SHARED_LIBS)
|
||||
|
||||
set (3RDPARTY_TCL_DLL "3RDPARTY_TCL_DLL-NOTFOUND" CACHE FILEPATH "TCL shared library" FORCE)
|
||||
find_library (3RDPARTY_TCL_DLL NAMES tcl${3RDPARTY_TCL_LIBRARY_VERSION}
|
||||
PATHS "${DLL_FOLDER_FOR_SEARCH}"
|
||||
NO_DEFAULT_PATH)
|
||||
PATHS "${DLL_FOLDER_FOR_SEARCH}"
|
||||
NO_DEFAULT_PATH)
|
||||
|
||||
if (NOT 3RDPARTY_TCL_DLL OR NOT EXISTS "${3RDPARTY_TCL_DLL}")
|
||||
set (3RDPARTY_TCL_DLL "" CACHE FILEPATH "TCL shared library" FORCE)
|
||||
@@ -184,7 +184,7 @@ if (BUILD_SHARED_LIBS)
|
||||
if (3RDPARTY_TCL_LIBRARY AND EXISTS "${3RDPARTY_TCL_LIBRARY}")
|
||||
list (APPEND 3RDPARTY_LIBRARY_DIRS "${3RDPARTY_TCL_LIBRARY_DIR}")
|
||||
else()
|
||||
list (APPEND 3RDPARTY_NOT_INCLUDED 3RDPARTY_TCL_LIBRARY_DIR})
|
||||
list (APPEND 3RDPARTY_NOT_INCLUDED 3RDPARTY_TCL_LIBRARY_DIR)
|
||||
endif()
|
||||
|
||||
if (WIN32)
|
||||
@@ -210,40 +210,40 @@ if (BUILD_SHARED_LIBS)
|
||||
file (GLOB TCL_DLLS "${3RDPARTY_TCL_DLL_DIR}/*.dll")
|
||||
|
||||
if (SINGLE_GENERATOR)
|
||||
install (FILES ${TCL_DLLS} DESTINATION "${INSTALL_DIR}/${INSTALL_DIR_BIN}")
|
||||
install (FILES ${TCL_DLLS} DESTINATION "${INSTALL_DIR_BIN}")
|
||||
else()
|
||||
install (FILES ${TCL_DLLS}
|
||||
CONFIGURATIONS Release
|
||||
DESTINATION "${INSTALL_DIR}/${INSTALL_DIR_BIN}")
|
||||
DESTINATION "${INSTALL_DIR_BIN}")
|
||||
install (FILES ${TCL_DLLS}
|
||||
CONFIGURATIONS RelWithDebInfo
|
||||
DESTINATION "${INSTALL_DIR}/${INSTALL_DIR_BIN}i")
|
||||
DESTINATION "${INSTALL_DIR_BIN}i")
|
||||
install (FILES ${TCL_DLLS}
|
||||
CONFIGURATIONS Debug
|
||||
DESTINATION "${INSTALL_DIR}/${INSTALL_DIR_BIN}d")
|
||||
DESTINATION "${INSTALL_DIR_BIN}d")
|
||||
endif()
|
||||
else()
|
||||
get_filename_component(3RDPARTY_TCL_LIBRARY_REALPATH ${3RDPARTY_TCL_LIBRARY} REALPATH)
|
||||
|
||||
if (SINGLE_GENERATOR)
|
||||
install (FILES ${3RDPARTY_TCL_LIBRARY_REALPATH} DESTINATION "${INSTALL_DIR}/${INSTALL_DIR_LIB}")
|
||||
install (FILES ${3RDPARTY_TCL_LIBRARY_REALPATH} DESTINATION "${INSTALL_DIR_LIB}")
|
||||
else()
|
||||
install (FILES ${3RDPARTY_TCL_LIBRARY_REALPATH}
|
||||
CONFIGURATIONS Release
|
||||
DESTINATION "${INSTALL_DIR}/${INSTALL_DIR_LIB}")
|
||||
DESTINATION "${INSTALL_DIR_LIB}")
|
||||
install (FILES ${3RDPARTY_TCL_LIBRARY_REALPATH}
|
||||
CONFIGURATIONS RelWithDebInfo
|
||||
DESTINATION "${INSTALL_DIR}/${INSTALL_DIR_LIB}i")
|
||||
DESTINATION "${INSTALL_DIR_LIB}i")
|
||||
install (FILES ${3RDPARTY_TCL_LIBRARY_REALPATH}
|
||||
CONFIGURATIONS Debug
|
||||
DESTINATION "${INSTALL_DIR}/${INSTALL_DIR_LIB}d")
|
||||
DESTINATION "${INSTALL_DIR_LIB}d")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (TCL_TCLSH_VERSION)
|
||||
# tcl is required to install in lib folder (without)
|
||||
install (DIRECTORY "${3RDPARTY_TCL_LIBRARY_DIR}/tcl8" DESTINATION "${INSTALL_DIR}/${INSTALL_DIR_LIB}")
|
||||
install (DIRECTORY "${3RDPARTY_TCL_LIBRARY_DIR}/tcl${TCL_TCLSH_VERSION}" DESTINATION "${INSTALL_DIR}/${INSTALL_DIR_LIB}")
|
||||
install (DIRECTORY "${3RDPARTY_TCL_LIBRARY_DIR}/tcl8" DESTINATION "${INSTALL_DIR_LIB}")
|
||||
install (DIRECTORY "${3RDPARTY_TCL_LIBRARY_DIR}/tcl${TCL_TCLSH_VERSION}" DESTINATION "${INSTALL_DIR_LIB}")
|
||||
else()
|
||||
message (STATUS "\nWarning: tclX.X subdir won't be copyied during the installation process.")
|
||||
message (STATUS "Try seeking tcl within another folder by changing 3RDPARTY_TCL_DIR variable.")
|
||||
|
@@ -97,9 +97,9 @@ if (BUILD_SHARED_LIBS)
|
||||
endif()
|
||||
|
||||
set (3RDPARTY_TK_DLL "3RDPARTY_TK_DLL-NOTFOUND" CACHE FILEPATH "TK shared library" FORCE)
|
||||
find_library (3RDPARTY_TK_DLL NAMES tk86 tk85
|
||||
PATHS "${DLL_FOLDER_FOR_SEARCH}"
|
||||
NO_DEFAULT_PATH)
|
||||
find_library (3RDPARTY_TK_DLL NAMES ${CSF_TclTkLibs}
|
||||
PATHS "${DLL_FOLDER_FOR_SEARCH}"
|
||||
NO_DEFAULT_PATH)
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
@@ -110,14 +110,14 @@ if (BUILD_SHARED_LIBS)
|
||||
# tk dir and library
|
||||
if (NOT 3RDPARTY_TK_LIBRARY)
|
||||
set (3RDPARTY_TK_LIBRARY "3RDPARTY_TK_LIBRARY-NOTFOUND" CACHE FILEPATH "TK library" FORCE)
|
||||
find_library (3RDPARTY_TK_LIBRARY NAMES tk8.6 tk86 tk8.5 tk85
|
||||
PATHS "${3RDPARTY_TK_LIBRARY_DIR}"
|
||||
NO_DEFAULT_PATH)
|
||||
find_library (3RDPARTY_TK_LIBRARY NAMES ${CSF_TclTkLibs}
|
||||
PATHS "${3RDPARTY_TK_LIBRARY_DIR}"
|
||||
NO_DEFAULT_PATH)
|
||||
|
||||
# search in another place if previous search doesn't find anything
|
||||
find_library (3RDPARTY_TK_LIBRARY NAMES tk8.6 tk86 tk8.5 tk85
|
||||
PATHS "${3RDPARTY_TK_DIR}/lib"
|
||||
NO_DEFAULT_PATH)
|
||||
find_library (3RDPARTY_TK_LIBRARY NAMES ${CSF_TclTkLibs}
|
||||
PATHS "${3RDPARTY_TK_DIR}/lib"
|
||||
NO_DEFAULT_PATH)
|
||||
|
||||
|
||||
if (NOT 3RDPARTY_TK_LIBRARY OR NOT EXISTS "${3RDPARTY_TK_LIBRARY}")
|
||||
@@ -165,8 +165,8 @@ if (BUILD_SHARED_LIBS)
|
||||
|
||||
set (3RDPARTY_TK_DLL "3RDPARTY_TK_DLL-NOTFOUND" CACHE FILEPATH "TK shared library" FORCE)
|
||||
find_library (3RDPARTY_TK_DLL NAMES tk${3RDPARTY_TK_LIBRARY_VERSION}
|
||||
PATHS "${DLL_FOLDER_FOR_SEARCH}"
|
||||
NO_DEFAULT_PATH)
|
||||
PATHS "${DLL_FOLDER_FOR_SEARCH}"
|
||||
NO_DEFAULT_PATH)
|
||||
|
||||
if (NOT 3RDPARTY_TK_DLL OR NOT EXISTS "${3RDPARTY_TK_DLL}")
|
||||
set (3RDPARTY_TK_DLL "" CACHE FILEPATH "TK shared library" FORCE)
|
||||
@@ -190,7 +190,7 @@ if (BUILD_SHARED_LIBS)
|
||||
if (3RDPARTY_TK_LIBRARY AND EXISTS "${3RDPARTY_TK_LIBRARY}")
|
||||
list (APPEND 3RDPARTY_LIBRARY_DIRS "${3RDPARTY_TK_LIBRARY_DIR}")
|
||||
else()
|
||||
list (APPEND 3RDPARTY_NOT_INCLUDED 3RDPARTY_TK_LIBRARY_DIR})
|
||||
list (APPEND 3RDPARTY_NOT_INCLUDED 3RDPARTY_TK_LIBRARY_DIR)
|
||||
endif()
|
||||
|
||||
if (WIN32)
|
||||
@@ -216,39 +216,39 @@ if (BUILD_SHARED_LIBS)
|
||||
file (GLOB TK_DLLS "${3RDPARTY_TK_DLL_DIR}/*.dll")
|
||||
|
||||
if (SINGLE_GENERATOR)
|
||||
install (FILES ${TK_DLLS} DESTINATION "${INSTALL_DIR}/${INSTALL_DIR_BIN}")
|
||||
install (FILES ${TK_DLLS} DESTINATION "${INSTALL_DIR_BIN}")
|
||||
else()
|
||||
install (FILES ${TK_DLLS}
|
||||
CONFIGURATIONS Release
|
||||
DESTINATION "${INSTALL_DIR}/${INSTALL_DIR_BIN}")
|
||||
DESTINATION "${INSTALL_DIR_BIN}")
|
||||
install (FILES ${TK_DLLS}
|
||||
CONFIGURATIONS RelWithDebInfo
|
||||
DESTINATION "${INSTALL_DIR}/${INSTALL_DIR_BIN}i")
|
||||
DESTINATION "${INSTALL_DIR_BIN}i")
|
||||
install (FILES ${TK_DLLS}
|
||||
CONFIGURATIONS Debug
|
||||
DESTINATION "${INSTALL_DIR}/${INSTALL_DIR_BIN}d")
|
||||
DESTINATION "${INSTALL_DIR_BIN}d")
|
||||
endif()
|
||||
else()
|
||||
get_filename_component(3RDPARTY_TK_LIBRARY_REALPATH ${3RDPARTY_TK_LIBRARY} REALPATH)
|
||||
|
||||
if (SINGLE_GENERATOR)
|
||||
install (FILES ${3RDPARTY_TK_LIBRARY_REALPATH} DESTINATION "${INSTALL_DIR}/${INSTALL_DIR_LIB}")
|
||||
install (FILES ${3RDPARTY_TK_LIBRARY_REALPATH} DESTINATION "${INSTALL_DIR_LIB}")
|
||||
else()
|
||||
install (FILES ${3RDPARTY_TK_LIBRARY_REALPATH}
|
||||
CONFIGURATIONS Release
|
||||
DESTINATION "${INSTALL_DIR}/${INSTALL_DIR_LIB}/")
|
||||
DESTINATION "${INSTALL_DIR_LIB}/")
|
||||
install (FILES ${3RDPARTY_TK_LIBRARY_REALPATH}
|
||||
CONFIGURATIONS RelWithDebInfo
|
||||
DESTINATION "${INSTALL_DIR}/${INSTALL_DIR_LIB}/i")
|
||||
DESTINATION "${INSTALL_DIR_LIB}/i")
|
||||
install (FILES ${3RDPARTY_TK_LIBRARY_REALPATH}
|
||||
CONFIGURATIONS Debug
|
||||
DESTINATION "${INSTALL_DIR}/${INSTALL_DIR_LIB}d")
|
||||
DESTINATION "${INSTALL_DIR_LIB}d")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (TCL_TCLSH_VERSION)
|
||||
# tk is required to install in lib folder (without)
|
||||
install (DIRECTORY "${3RDPARTY_TK_LIBRARY_DIR}/tk${TCL_TCLSH_VERSION}" DESTINATION "${INSTALL_DIR}/${INSTALL_DIR_LIB}")
|
||||
install (DIRECTORY "${3RDPARTY_TK_LIBRARY_DIR}/tk${TCL_TCLSH_VERSION}" DESTINATION "${INSTALL_DIR_LIB}")
|
||||
else()
|
||||
message (STATUS "\nWarning: tkX.X subdir won't be copyied during the installation process.")
|
||||
message (STATUS "Try seeking tk within another folder by changing 3RDPARTY_TK_DIR variable.")
|
||||
|
@@ -18,6 +18,8 @@ set (BUILD_YACCLEX_DESCR
|
||||
ExprIntrp functionality are generated automatically with Flex/Bison. Checking this options
|
||||
leads to automatic search of Flex/Bison binaries and regeneration of the mentioned files")
|
||||
|
||||
set (BUILD_RESOURCES_DESCR "Enables regeneration of OCCT resource files")
|
||||
|
||||
set (BUILD_WITH_DEBUG_DESCR
|
||||
"Enables extended messages of many OCCT algorithms, usually printed to cout.
|
||||
These include messages on internal errors and special cases encountered, timing etc.
|
||||
@@ -26,6 +28,11 @@ Applies only for Debug configuration.")
|
||||
set (BUILD_SHARED_LIBRARY_NAME_POSTFIX_DESCR
|
||||
"Append the postfix to names of output libraries")
|
||||
|
||||
set (BUILD_ENABLE_FPE_SIGNAL_HANDLER_DESCR
|
||||
"Enable/Disable the floating point exceptions (FPE) during DRAW execution only.
|
||||
Corresponding environment variable (CSF_FPE) can be changed manually
|
||||
in custom.bat/sh scripts without regeneration by CMake.")
|
||||
|
||||
# install variables
|
||||
set (INSTALL_DIR_DESCR
|
||||
"The place where built OCCT libraries, headers, test cases (INSTALL_TEST_CASES variable),
|
||||
|
@@ -140,8 +140,11 @@ proc wokdep:gui:UpdateList {} {
|
||||
if { "$::HAVE_FREEIMAGE" == "true" } {
|
||||
wokdep:SearchFreeImage anIncErrs anLib32Errs anLib64Errs anBin32Errs anBin64Errs
|
||||
}
|
||||
if { "$::HAVE_FFMPEG" == "true" } {
|
||||
wokdep:SearchFFmpeg anIncErrs anLib32Errs anLib64Errs anBin32Errs anBin64Errs
|
||||
}
|
||||
if { "$::HAVE_GL2PS" == "true" } {
|
||||
wokdep:SearchGL2PS anIncErrs anLib32Errs anLib64Errs anBin32Errs anBin64Errs
|
||||
wokdep:SearchStandardLibrary anIncErrs anLib32Errs anLib64Errs anBin32Errs anBin64Errs "gl2ps" "gl2ps.h" "gl2ps" {"gl2ps"}
|
||||
}
|
||||
if { "$::HAVE_TBB" == "true" } {
|
||||
wokdep:SearchTBB anIncErrs anLib32Errs anLib64Errs anBin32Errs anBin64Errs
|
||||
@@ -152,6 +155,18 @@ proc wokdep:gui:UpdateList {} {
|
||||
if { "$::HAVE_VTK" == "true" } {
|
||||
wokdep:SearchVTK anIncErrs anLib32Errs anLib64Errs anBin32Errs anBin64Errs
|
||||
}
|
||||
|
||||
if { "$::HAVE_ZLIB" == "true" } {
|
||||
wokdep:SearchStandardLibrary anIncErrs anLib32Errs anLib64Errs anBin32Errs anBin64Errs "zlib" "zlib.h" "zlib" {"zlib"}
|
||||
}
|
||||
if { "$::HAVE_LIBLZMA" == "true" } {
|
||||
set aCheckLib "lzma"
|
||||
if { "$::tcl_platform(platform)" == "windows" } {
|
||||
set aCheckLib "liblzma"
|
||||
}
|
||||
wokdep:SearchStandardLibrary anIncErrs anLib32Errs anLib64Errs anBin32Errs anBin64Errs "liblzma" "lzma.h" "$aCheckLib" {"lzma" "xz"}
|
||||
}
|
||||
|
||||
if { "$::CHECK_QT4" == "true" } {
|
||||
wokdep:SearchQt4 anIncErrs anLib32Errs anLib64Errs anBin32Errs anBin64Errs
|
||||
}
|
||||
@@ -402,12 +417,20 @@ if { "$::tcl_platform(platform)" == "windows" } {
|
||||
checkbutton .myFrame.myChecks.myD3dCheck -offvalue "false" -onvalue "true" -variable HAVE_D3D -command wokdep:gui:UpdateList
|
||||
ttk::label .myFrame.myChecks.myD3dLbl -text "Use Direct3D"
|
||||
}
|
||||
checkbutton .myFrame.myChecks.myFFmpegCheck -offvalue "false" -onvalue "true" -variable HAVE_FFMPEG -command wokdep:gui:UpdateList
|
||||
ttk::label .myFrame.myChecks.myFFmpegLbl -text "Use FFmpeg"
|
||||
#checkbutton .myFrame.myChecks.myOpenClCheck -offvalue "false" -onvalue "true" -variable HAVE_OPENCL -command wokdep:gui:UpdateList
|
||||
#ttk::label .myFrame.myChecks.myOpenClLbl -text "Use OpenCL"
|
||||
checkbutton .myFrame.myChecks.myMacGLXCheck -offvalue "false" -onvalue "true" -variable MACOSX_USE_GLX
|
||||
ttk::label .myFrame.myChecks.myMacGLXLbl -text "Use X11 for windows drawing"
|
||||
ttk::label .myFrame.myChecks.myVtkLbl -text "Use VTK"
|
||||
checkbutton .myFrame.myChecks.myVtkCheck -offvalue "false" -onvalue "true" -variable HAVE_VTK -command wokdep:gui:UpdateList
|
||||
|
||||
checkbutton .myFrame.myChecks.myZLibCheck -offvalue "false" -onvalue "true" -variable HAVE_ZLIB -command wokdep:gui:UpdateList
|
||||
ttk::label .myFrame.myChecks.myZLibLbl -text "Use zlib"
|
||||
checkbutton .myFrame.myChecks.myLzmaCheck -offvalue "false" -onvalue "true" -variable HAVE_LIBLZMA -command wokdep:gui:UpdateList
|
||||
ttk::label .myFrame.myChecks.myLzmaLbl -text "Use liblzma"
|
||||
|
||||
checkbutton .myFrame.myChecks.myQt4Check -offvalue "false" -onvalue "true" -variable CHECK_QT4 -command wokdep:gui:UpdateList
|
||||
ttk::label .myFrame.myChecks.myQt4Lbl -text "Search Qt4"
|
||||
checkbutton .myFrame.myChecks.myJDKCheck -offvalue "false" -onvalue "true" -variable CHECK_JDK -command wokdep:gui:UpdateList
|
||||
@@ -499,23 +522,35 @@ grid .myFrame.myChecks.myFImageCheck -row $aCheckRowIter -column 0 -sticky e
|
||||
grid .myFrame.myChecks.myFImageLbl -row $aCheckRowIter -column 1 -sticky w
|
||||
grid .myFrame.myChecks.myTbbCheck -row $aCheckRowIter -column 2 -sticky e
|
||||
grid .myFrame.myChecks.myTbbLbl -row $aCheckRowIter -column 3 -sticky w
|
||||
grid .myFrame.myChecks.myQt4Check -row $aCheckRowIter -column 4 -sticky e
|
||||
grid .myFrame.myChecks.myQt4Lbl -row $aCheckRowIter -column 5 -sticky w
|
||||
grid .myFrame.myChecks.myGlesCheck -row $aCheckRowIter -column 6 -sticky e
|
||||
grid .myFrame.myChecks.myGlesLbl -row $aCheckRowIter -column 7 -sticky w
|
||||
if { "$::tcl_platform(os)" != "Darwin" } {
|
||||
grid .myFrame.myChecks.myGlesCheck -row $aCheckRowIter -column 4 -sticky e
|
||||
grid .myFrame.myChecks.myGlesLbl -row $aCheckRowIter -column 5 -sticky w
|
||||
}
|
||||
#grid .myFrame.myChecks.myOpenClCheck -row $aCheckRowIter -column 6 -sticky e
|
||||
#grid .myFrame.myChecks.myOpenClLbl -row $aCheckRowIter -column 7 -sticky w
|
||||
grid .myFrame.myChecks.myZLibCheck -row $aCheckRowIter -column 6 -sticky e
|
||||
grid .myFrame.myChecks.myZLibLbl -row $aCheckRowIter -column 7 -sticky w
|
||||
|
||||
grid .myFrame.myChecks.myGl2psCheck -row $aCheckRowIter -column 8 -sticky e
|
||||
grid .myFrame.myChecks.myGl2psLbl -row $aCheckRowIter -column 9 -sticky w
|
||||
|
||||
grid .myFrame.myChecks.myQt4Check -row $aCheckRowIter -column 10 -sticky e
|
||||
grid .myFrame.myChecks.myQt4Lbl -row $aCheckRowIter -column 11 -sticky w
|
||||
|
||||
incr aCheckRowIter
|
||||
grid .myFrame.myChecks.myGl2psCheck -row $aCheckRowIter -column 0 -sticky e
|
||||
grid .myFrame.myChecks.myGl2psLbl -row $aCheckRowIter -column 1 -sticky w
|
||||
grid .myFrame.myChecks.myFFmpegCheck -row $aCheckRowIter -column 0 -sticky e
|
||||
grid .myFrame.myChecks.myFFmpegLbl -row $aCheckRowIter -column 1 -sticky w
|
||||
grid .myFrame.myChecks.myVtkCheck -row $aCheckRowIter -column 2 -sticky e
|
||||
grid .myFrame.myChecks.myVtkLbl -row $aCheckRowIter -column 3 -sticky w
|
||||
grid .myFrame.myChecks.myJDKCheck -row $aCheckRowIter -column 4 -sticky e
|
||||
grid .myFrame.myChecks.myJDKLbl -row $aCheckRowIter -column 5 -sticky w
|
||||
if { "$::tcl_platform(platform)" == "windows" } {
|
||||
grid .myFrame.myChecks.myD3dCheck -row $aCheckRowIter -column 6 -sticky e
|
||||
grid .myFrame.myChecks.myD3dLbl -row $aCheckRowIter -column 7 -sticky w
|
||||
grid .myFrame.myChecks.myD3dCheck -row $aCheckRowIter -column 4 -sticky e
|
||||
grid .myFrame.myChecks.myD3dLbl -row $aCheckRowIter -column 5 -sticky w
|
||||
}
|
||||
grid .myFrame.myChecks.myLzmaCheck -row $aCheckRowIter -column 6 -sticky e
|
||||
grid .myFrame.myChecks.myLzmaLbl -row $aCheckRowIter -column 7 -sticky w
|
||||
grid .myFrame.myChecks.myJDKCheck -row $aCheckRowIter -column 10 -sticky e
|
||||
grid .myFrame.myChecks.myJDKLbl -row $aCheckRowIter -column 11 -sticky w
|
||||
|
||||
incr aCheckRowIter
|
||||
if { "$::tcl_platform(os)" == "Darwin" } {
|
||||
grid .myFrame.myChecks.myMacGLXCheck -row $aCheckRowIter -column 0 -sticky e
|
||||
|
@@ -43,16 +43,6 @@ if { "$tcl_platform(platform)" == "unix" } {
|
||||
|
||||
set SHORTCUT_HEADERS "ShortCut"
|
||||
|
||||
set HAVE_FREEIMAGE "false"
|
||||
set HAVE_GL2PS "false"
|
||||
set HAVE_TBB "false"
|
||||
set HAVE_D3D "false"
|
||||
set HAVE_GLES2 "false"
|
||||
set HAVE_OPENCL "false"
|
||||
set HAVE_VTK "false"
|
||||
set MACOSX_USE_GLX "false"
|
||||
set CHECK_QT4 "false"
|
||||
set CHECK_JDK "false"
|
||||
set PRODUCTS_PATH ""
|
||||
set CSF_OPT_INC [list]
|
||||
set CSF_OPT_LIB32 [list]
|
||||
@@ -66,51 +56,37 @@ if { "$tcl_platform(pointerSize)" == "4" } {
|
||||
if { [info exists ::env(ARCH)] } {
|
||||
set ARCH "$::env(ARCH)"
|
||||
}
|
||||
if { [info exists ::env(VCVER)] } {
|
||||
set VCVER "$::env(VCVER)"
|
||||
}
|
||||
if { [info exists ::env(VCVARS)] } {
|
||||
set VCVARS "$::env(VCVARS)"
|
||||
}
|
||||
|
||||
if { [info exists ::env(SHORTCUT_HEADERS)] } {
|
||||
set SHORTCUT_HEADERS "$::env(SHORTCUT_HEADERS)"
|
||||
if { $SHORTCUT_HEADERS == "true" } {
|
||||
set SHORTCUT_HEADERS "ShortCut"
|
||||
}
|
||||
}
|
||||
if { [info exists ::env(HAVE_FREEIMAGE)] } {
|
||||
set HAVE_FREEIMAGE "$::env(HAVE_FREEIMAGE)"
|
||||
|
||||
# fetch environment variables (e.g. set by custom.sh or custom.bat) and set them as tcl variables with the same name
|
||||
set THE_ENV_VARIABLES {HAVE_FREEIMAGE HAVE_FFMPEG HAVE_TBB HAVE_GLES2 HAVE_D3D HAVE_VTK HAVE_GL2PS HAVE_ZLIB HAVE_LIBLZMA HAVE_OPENCL CHECK_QT4 CHECK_JDK MACOSX_USE_GLX}
|
||||
foreach anEnvIter $THE_ENV_VARIABLES {
|
||||
set ${anEnvIter} "false"
|
||||
if { [info exists ::env(${anEnvIter})] } {
|
||||
set ${anEnvIter} "$::env(${anEnvIter})"
|
||||
}
|
||||
}
|
||||
if { [info exists ::env(HAVE_GL2PS)] } {
|
||||
set HAVE_GL2PS "$::env(HAVE_GL2PS)"
|
||||
# do not export platform-specific variables
|
||||
if { "$::tcl_platform(os)" == "Darwin" } {
|
||||
set HAVE_GLES2 ""
|
||||
} else {
|
||||
set MACOSX_USE_GLX ""
|
||||
if { "$tcl_platform(platform)" != "windows" } {
|
||||
set HAVE_D3D ""
|
||||
}
|
||||
}
|
||||
if { [info exists ::env(HAVE_TBB)] } {
|
||||
set HAVE_TBB "$::env(HAVE_TBB)"
|
||||
}
|
||||
if { [info exists ::env(HAVE_D3D)] } {
|
||||
set HAVE_D3D "$::env(HAVE_D3D)"
|
||||
}
|
||||
if { [info exists ::env(HAVE_GLES2)] } {
|
||||
set HAVE_GLES2 "$::env(HAVE_GLES2)"
|
||||
}
|
||||
if { [info exists ::env(HAVE_OPENCL)] } {
|
||||
set HAVE_OPENCL "$::env(HAVE_OPENCL)"
|
||||
}
|
||||
if { [info exists ::env(HAVE_VTK)] } {
|
||||
set HAVE_VTK "$::env(HAVE_VTK)"
|
||||
}
|
||||
if { [info exists ::env(MACOSX_USE_GLX)] } {
|
||||
set MACOSX_USE_GLX "$::env(MACOSX_USE_GLX)"
|
||||
}
|
||||
if { [info exists ::env(CHECK_QT4)] } {
|
||||
set CHECK_QT4 "$::env(CHECK_QT4)"
|
||||
}
|
||||
if { [info exists ::env(CHECK_JDK)] } {
|
||||
set CHECK_JDK "$::env(CHECK_JDK)"
|
||||
}
|
||||
if { [info exists ::env(PRODUCTS_PATH)] } {
|
||||
set PRODUCTS_PATH "$::env(PRODUCTS_PATH)"
|
||||
foreach anEnvIter {ARCH VCVER VCVARS PRODUCTS_PATH} {
|
||||
if { [info exists ::env(${anEnvIter})] } {
|
||||
set ${anEnvIter} "$::env(${anEnvIter})"
|
||||
}
|
||||
}
|
||||
|
||||
if { [info exists ::env(CSF_OPT_INC)] } {
|
||||
set CSF_OPT_INC [split "$::env(CSF_OPT_INC)" $::SYS_PATH_SPLITTER]
|
||||
}
|
||||
@@ -252,6 +228,83 @@ proc wokdep:Preferred {theList theCmpl theArch} {
|
||||
return [lindex [lsort -decreasing $aVeryShortList] 0]
|
||||
}
|
||||
|
||||
# Search library placement
|
||||
proc wokdep:SearchStandardLibrary {theErrInc theErrLib32 theErrLib64 theErrBin32 theErrBin64 theName theCheckHeader theCheckLib theCheckFolders} {
|
||||
upvar $theErrInc anErrInc
|
||||
upvar $theErrLib32 anErrLib32
|
||||
upvar $theErrLib64 anErrLib64
|
||||
upvar $theErrBin32 anErrBin32
|
||||
upvar $theErrBin64 anErrBin64
|
||||
|
||||
set isFound "true"
|
||||
set aHeaderPath [wokdep:SearchHeader "$theCheckHeader"]
|
||||
if { "$aHeaderPath" == "" } {
|
||||
set hasHeader false
|
||||
foreach aFolderIter $theCheckFolders {
|
||||
set aPath [wokdep:Preferred [glob -nocomplain -directory "$::PRODUCTS_PATH" -type d *{$aFolderIter}*] "$::VCVER" "$::ARCH" ]
|
||||
if { "$aPath" != "" && [file exists "$aPath/include/$theCheckHeader"] } {
|
||||
lappend ::CSF_OPT_INC "$aPath/include"
|
||||
set hasHeader true
|
||||
break
|
||||
}
|
||||
}
|
||||
if { !$hasHeader } {
|
||||
lappend anErrInc "Error: '$theCheckHeader' not found ($theName)"
|
||||
set isFound "false"
|
||||
}
|
||||
}
|
||||
|
||||
foreach anArchIter {64 32} {
|
||||
set aLibPath [wokdep:SearchLib "$theCheckLib" "$anArchIter"]
|
||||
if { "$aLibPath" == "" } {
|
||||
set hasLib false
|
||||
foreach aFolderIter $theCheckFolders {
|
||||
set aPath [wokdep:Preferred [glob -nocomplain -directory "$::PRODUCTS_PATH" -type d *{$aFolderIter}*] "$::VCVER" "$anArchIter" ]
|
||||
set aLibPath [wokdep:SearchLib "$theCheckLib" "$anArchIter" "$aPath/lib"]
|
||||
if { "$aLibPath" != "" } {
|
||||
lappend ::CSF_OPT_LIB$anArchIter "$aPath/lib"
|
||||
lappend ::CSF_OPT_BIN$anArchIter "$aPath/bin"
|
||||
set hasLib true
|
||||
break
|
||||
}
|
||||
}
|
||||
if { !$hasLib } {
|
||||
lappend anErrLib$anArchIter "Error: '${::SYS_LIB_PREFIX}$theCheckLib.${::SYS_LIB_SUFFIX}' not found ($theName)"
|
||||
if { "$::ARCH" == "$anArchIter"} { set isFound "false" }
|
||||
}
|
||||
}
|
||||
|
||||
if { "$::tcl_platform(platform)" == "windows" } {
|
||||
set aDllPath [wokdep:SearchBin "$theCheckLib.dll" "$anArchIter"]
|
||||
if { "$aDllPath" == "" } {
|
||||
set hasDll false
|
||||
foreach aFolderIter $theCheckFolders {
|
||||
set aPath [wokdep:Preferred [glob -nocomplain -directory "$::PRODUCTS_PATH" -type d *{$aFolderIter}*] "$::VCVER" "$anArchIter" ]
|
||||
set aDllPath [wokdep:SearchBin "$theCheckLib.dll" "$anArchIter" "$aPath/bin"]
|
||||
if { "$aDllPath" != "" } {
|
||||
lappend ::CSF_OPT_BIN$anArchIter "$aPath/bin"
|
||||
set hasDll true
|
||||
break
|
||||
} else {
|
||||
set aDllPath [wokdep:SearchBin "$theCheckLib.dll" "$anArchIter" "$aPath/lib"]
|
||||
if { "$aDllPath" != "" } {
|
||||
lappend ::CSF_OPT_BIN$anArchIter "$aPath/lib"
|
||||
set hasDll true
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
if { !$hasDll } {
|
||||
lappend anErrBin$anArchIter "Error: '$theCheckLib.dll' not found ($theName)"
|
||||
if { "$::ARCH" == "$anArchIter"} { set isFound "false" }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return "$isFound"
|
||||
}
|
||||
|
||||
# Search Tcl/Tk libraries placement
|
||||
proc wokdep:SearchTclTk {theErrInc theErrLib32 theErrLib64 theErrBin32 theErrBin64} {
|
||||
upvar $theErrInc anErrInc
|
||||
@@ -489,8 +542,8 @@ proc wokdep:SearchFreeImage {theErrInc theErrLib32 theErrLib64 theErrBin32 theEr
|
||||
return "$isFound"
|
||||
}
|
||||
|
||||
# Search GL2PS library placement
|
||||
proc wokdep:SearchGL2PS {theErrInc theErrLib32 theErrLib64 theErrBin32 theErrBin64} {
|
||||
# Search FFmpeg framework placement
|
||||
proc wokdep:SearchFFmpeg {theErrInc theErrLib32 theErrLib64 theErrBin32 theErrBin64} {
|
||||
upvar $theErrInc anErrInc
|
||||
upvar $theErrLib32 anErrLib32
|
||||
upvar $theErrLib64 anErrLib64
|
||||
@@ -498,47 +551,30 @@ proc wokdep:SearchGL2PS {theErrInc theErrLib32 theErrLib64 theErrBin32 theErrBin
|
||||
upvar $theErrBin64 anErrBin64
|
||||
|
||||
set isFound "true"
|
||||
set aGl2psHPath [wokdep:SearchHeader "gl2ps.h"]
|
||||
if { "$aGl2psHPath" == "" } {
|
||||
set aPath [wokdep:Preferred [glob -nocomplain -directory "$::PRODUCTS_PATH" -type d *{gl2ps}*] "$::VCVER" "$::ARCH" ]
|
||||
if { "$aPath" != "" && [file exists "$aPath/include/gl2ps.h"] } {
|
||||
set aFFmpegHPath [wokdep:SearchHeader "libavutil/avutil.h"]
|
||||
if { "$aFFmpegHPath" == "" } {
|
||||
set aPath [wokdep:Preferred [glob -nocomplain -directory "$::PRODUCTS_PATH" -type d *{ffmpeg}*] "$::VCVER" "$::ARCH" ]
|
||||
if { "$aPath" != "" && [file exists "$aPath/include/libavutil/avutil.h"] } {
|
||||
lappend ::CSF_OPT_INC "$aPath/include"
|
||||
} else {
|
||||
lappend anErrInc "Error: 'gl2ps.h' not found (GL2PS)"
|
||||
lappend anErrInc "Error: 'libavutil/avutil.h' not found (FFmpeg)"
|
||||
set isFound "false"
|
||||
}
|
||||
}
|
||||
|
||||
foreach anArchIter {64 32} {
|
||||
set aGl2psLibPath [wokdep:SearchLib "gl2ps" "$anArchIter"]
|
||||
if { "$aGl2psLibPath" == "" } {
|
||||
set aPath [wokdep:Preferred [glob -nocomplain -directory "$::PRODUCTS_PATH" -type d *{gl2ps}*] "$::VCVER" "$anArchIter" ]
|
||||
set aGl2psLibPath [wokdep:SearchLib "gl2ps" "$anArchIter" "$aPath/lib"]
|
||||
if { "$aGl2psLibPath" != "" } {
|
||||
set aFFmpegLibPath [wokdep:SearchLib "avutil" "$anArchIter"]
|
||||
if { "$aFFmpegLibPath" == "" } {
|
||||
set aPath [wokdep:Preferred [glob -nocomplain -directory "$::PRODUCTS_PATH" -type d *{ffmpeg}*] "$::VCVER" "$anArchIter" ]
|
||||
set aFFmpegLibPath [wokdep:SearchLib "avutil" "$anArchIter" "$aPath/lib"]
|
||||
if { "$aFFmpegLibPath" != "" } {
|
||||
lappend ::CSF_OPT_LIB$anArchIter "$aPath/lib"
|
||||
lappend ::CSF_OPT_BIN$anArchIter "$aPath/bin"
|
||||
} else {
|
||||
lappend anErrLib$anArchIter "Error: '${::SYS_LIB_PREFIX}gl2ps.${::SYS_LIB_SUFFIX}' not found (GL2PS)"
|
||||
lappend anErrLib$anArchIter "Error: '${::SYS_LIB_PREFIX}avutil.${::SYS_LIB_SUFFIX}' not found (FFmpeg)"
|
||||
if { "$::ARCH" == "$anArchIter"} { set isFound "false" }
|
||||
}
|
||||
}
|
||||
if { "$::tcl_platform(platform)" == "windows" } {
|
||||
set aGl2psDllPath [wokdep:SearchBin "gl2ps.dll" "$anArchIter"]
|
||||
if { "$aGl2psDllPath" == "" } {
|
||||
set aPath [wokdep:Preferred [glob -nocomplain -directory "$::PRODUCTS_PATH" -type d *{gl2ps}*] "$::VCVER" "$anArchIter" ]
|
||||
set aGl2psDllPath [wokdep:SearchBin "gl2ps.dll" "$anArchIter" "$aPath/bin"]
|
||||
if { "$aGl2psDllPath" != "" } {
|
||||
lappend ::CSF_OPT_BIN$anArchIter "$aPath/bin"
|
||||
} else {
|
||||
set aGl2psDllPath [wokdep:SearchBin "gl2ps.dll" "$anArchIter" "$aPath/lib"]
|
||||
if { "$aGl2psDllPath" != "" } {
|
||||
lappend ::CSF_OPT_BIN$anArchIter "$aPath/lib"
|
||||
} else {
|
||||
lappend anErrBin$anArchIter "Error: 'gl2ps.dll' not found (GL2PS)"
|
||||
if { "$::ARCH" == "$anArchIter"} { set isFound "false" }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return "$isFound"
|
||||
@@ -1075,15 +1111,13 @@ proc wokdep:SaveCustom {} {
|
||||
|
||||
puts $aFile ""
|
||||
puts $aFile "rem Optional 3rd-parties switches"
|
||||
puts $aFile "set HAVE_FREEIMAGE=$::HAVE_FREEIMAGE"
|
||||
puts $aFile "set HAVE_GL2PS=$::HAVE_GL2PS"
|
||||
puts $aFile "set HAVE_TBB=$::HAVE_TBB"
|
||||
puts $aFile "set HAVE_GLES2=$::HAVE_GLES2"
|
||||
puts $aFile "set HAVE_D3D=$::HAVE_D3D"
|
||||
puts $aFile "set HAVE_OPENCL=$::HAVE_OPENCL"
|
||||
puts $aFile "set HAVE_VTK=$::HAVE_VTK"
|
||||
puts $aFile "set CHECK_QT4=$::CHECK_QT4"
|
||||
puts $aFile "set CHECK_JDK=$::CHECK_JDK"
|
||||
foreach anEnvIter $::THE_ENV_VARIABLES {
|
||||
set aName ${anEnvIter}
|
||||
set aValue [set ::${anEnvIter}]
|
||||
if { "$aValue" != "" } {
|
||||
puts $aFile "set ${aName}=$aValue"
|
||||
}
|
||||
}
|
||||
|
||||
set aStringInc [join $::CSF_OPT_INC $::SYS_PATH_SPLITTER]
|
||||
puts $aFile ""
|
||||
@@ -1126,17 +1160,13 @@ proc wokdep:SaveCustom {} {
|
||||
|
||||
puts $aFile ""
|
||||
puts $aFile "# Optional 3rd-parties switches"
|
||||
puts $aFile "export HAVE_FREEIMAGE=$::HAVE_FREEIMAGE"
|
||||
puts $aFile "export HAVE_GL2PS=$::HAVE_GL2PS"
|
||||
puts $aFile "export HAVE_TBB=$::HAVE_TBB"
|
||||
puts $aFile "export HAVE_GLES2=$::HAVE_GLES2"
|
||||
puts $aFile "export HAVE_OPENCL=$::HAVE_OPENCL"
|
||||
puts $aFile "export HAVE_VTK=$::HAVE_VTK"
|
||||
if { "$::tcl_platform(os)" == "Darwin" } {
|
||||
puts $aFile "export MACOSX_USE_GLX=$::MACOSX_USE_GLX"
|
||||
foreach anEnvIter $::THE_ENV_VARIABLES {
|
||||
set aName ${anEnvIter}
|
||||
set aValue [set ::${anEnvIter}]
|
||||
if { "$aValue" != "" } {
|
||||
puts $aFile "export ${aName}=${aValue}"
|
||||
}
|
||||
}
|
||||
puts $aFile "export CHECK_QT4=$::CHECK_QT4"
|
||||
puts $aFile "export CHECK_JDK=$::CHECK_JDK"
|
||||
|
||||
set aStringInc [join $::CSF_OPT_INC $::SYS_PATH_SPLITTER]
|
||||
puts $aFile ""
|
||||
|
@@ -70,7 +70,7 @@ proc gendoc {args} {
|
||||
set DOCLABEL ""
|
||||
set VERB_MODE "NO"
|
||||
set SEARCH_MODE "none"
|
||||
set MATHJAX_LOCATION "http://cdn.mathjax.org/mathjax/latest"
|
||||
set MATHJAX_LOCATION "https://cdn.mathjax.org/mathjax/latest"
|
||||
set mathjax_js_name "MathJax.js"
|
||||
set DOCTYPE_COMBO_FLAG 0
|
||||
set GENMODE_COMBO_FLAG 0
|
||||
|
377
adm/genproj.tcl
@@ -108,9 +108,155 @@ proc osutils:findSrcSubPath {theSubPath} {
|
||||
return "$::THE_CASROOT/src/$theSubPath"
|
||||
}
|
||||
|
||||
# Auxiliary tool comparing content of two files line-by-line.
|
||||
proc osutils:isEqualContent { theContent1 theContent2 } {
|
||||
set aLen1 [llength $theContent1]
|
||||
set aLen2 [llength $theContent2]
|
||||
if { $aLen1 != $aLen2 } {
|
||||
return false
|
||||
}
|
||||
|
||||
for {set aLineIter 0} {$aLineIter < $aLen1} {incr aLineIter} {
|
||||
set aLine1 [lindex $theContent1 $aLineIter]
|
||||
set aLine2 [lindex $theContent2 $aLineIter]
|
||||
if { $aLine1 != $aLine2 } {
|
||||
return false
|
||||
}
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
# Auxiliary function for writing new file content only if it has been actually changed
|
||||
# (e.g. to preserve file timestamp on no change).
|
||||
# Useful for automatically (re)generated files.
|
||||
proc osutils:writeTextFile { theFile theContent {theEol lf} } {
|
||||
if {[file exists "${theFile}"]} {
|
||||
set aFileOld [open "${theFile}" rb]
|
||||
fconfigure $aFileOld -translation crlf
|
||||
set aLineListOld [split [read $aFileOld] "\n"]
|
||||
close $aFileOld
|
||||
|
||||
# append empty line for proper comparison (which will be implicitly added by last puts below)
|
||||
set aContent $theContent
|
||||
lappend aContent ""
|
||||
if { [osutils:isEqualContent $aLineListOld $aContent] == true } {
|
||||
return false
|
||||
}
|
||||
|
||||
file delete -force "${theFile}"
|
||||
}
|
||||
|
||||
set anOutFile [open "$theFile" "w"]
|
||||
fconfigure $anOutFile -translation $theEol
|
||||
foreach aLine ${theContent} {
|
||||
puts $anOutFile "${aLine}"
|
||||
}
|
||||
close $anOutFile
|
||||
return true
|
||||
}
|
||||
|
||||
# Function re-generating header files for specified text resource
|
||||
proc genResources { theResource } {
|
||||
global path
|
||||
|
||||
set aResFileList {}
|
||||
set aResourceAbsPath [file normalize "${path}/src/${theResource}"]
|
||||
set aResourceDirectory ""
|
||||
set isResDirectory false
|
||||
|
||||
if {[file isdirectory "${aResourceAbsPath}"]} {
|
||||
if {[file exists "${aResourceAbsPath}/FILES"]} {
|
||||
set aFilesFile [open "${aResourceAbsPath}/FILES" rb]
|
||||
set aResFileList [split [read $aFilesFile] "\n"]
|
||||
close $aFilesFile
|
||||
}
|
||||
set aResFileList [lsearch -inline -all -not -exact $aResFileList ""]
|
||||
set aResourceDirectory "${theResource}"
|
||||
set isResDirectory true
|
||||
} else {
|
||||
set aResourceName [file tail "${theResource}"]
|
||||
lappend aResFileList "res:::${aResourceName}"
|
||||
set aResourceDirectory [file dirname "${theResource}"]
|
||||
}
|
||||
|
||||
foreach aResFileIter ${aResFileList} {
|
||||
if {![regexp {^[^:]+:::(.+)} "${aResFileIter}" dump aResFileIter]} {
|
||||
continue
|
||||
}
|
||||
|
||||
set aResFileName [file tail "${aResFileIter}"]
|
||||
regsub -all {\.} "${aResFileName}" {_} aResFileName
|
||||
set aHeaderFileName "${aResourceDirectory}_${aResFileName}.pxx"
|
||||
if { $isResDirectory == true && [lsearch $aResFileList $aHeaderFileName] == -1 } {
|
||||
continue
|
||||
}
|
||||
|
||||
# generate
|
||||
set aContent {}
|
||||
lappend aContent "// This file has been automatically generated from resource file src/${aResourceDirectory}/${aResFileIter}"
|
||||
lappend aContent ""
|
||||
|
||||
# generate necessary structures
|
||||
set aLineList {}
|
||||
if {[file exists "${path}/src/${aResourceDirectory}/${aResFileIter}"]} {
|
||||
set anInputFile [open "${path}/src/${aResourceDirectory}/${aResFileIter}" rb]
|
||||
fconfigure $anInputFile -translation crlf
|
||||
set aLineList [split [read $anInputFile] "\n"]
|
||||
close $anInputFile
|
||||
}
|
||||
|
||||
# drop empty trailing line
|
||||
set anEndOfFile ""
|
||||
if { [lindex $aLineList end] == "" } {
|
||||
set aLineList [lreplace $aLineList end end]
|
||||
set anEndOfFile "\\n"
|
||||
}
|
||||
|
||||
lappend aContent "static const char ${aResourceDirectory}_${aResFileName}\[\] ="
|
||||
set aNbLines [llength $aLineList]
|
||||
set aLastLine [expr $aNbLines - 1]
|
||||
for {set aLineIter 0} {$aLineIter < $aNbLines} {incr aLineIter} {
|
||||
set aLine [lindex $aLineList $aLineIter]
|
||||
regsub -all {\"} "${aLine}" {\\"} aLine
|
||||
if { $aLineIter == $aLastLine } {
|
||||
lappend aContent " \"${aLine}${anEndOfFile}\";"
|
||||
} else {
|
||||
lappend aContent " \"${aLine}\\n\""
|
||||
}
|
||||
}
|
||||
|
||||
# Save generated content to header file
|
||||
set aHeaderFilePath "${path}/src/${aResourceDirectory}/${aHeaderFileName}"
|
||||
if { [osutils:writeTextFile $aHeaderFilePath $aContent] == true } {
|
||||
puts "Generating header file from resource file: ${path}/src/${aResourceDirectory}/${aResFileIter}"
|
||||
} else {
|
||||
#puts "Header file from resource ${path}/src/${aResourceDirectory}/${aResFileIter} is up-to-date"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Function re-generating header files for all text resources
|
||||
proc genAllResources {} {
|
||||
global path
|
||||
set aCasRoot [file normalize $path]
|
||||
if {![file exists "$aCasRoot/adm/RESOURCES"]} {
|
||||
puts "OCCT directory is not defined correctly: $aCasRoot"
|
||||
return
|
||||
}
|
||||
|
||||
set aFileResources [open "$aCasRoot/adm/RESOURCES" rb]
|
||||
set anAdmResources [split [read $aFileResources] "\r\n"]
|
||||
close $aFileResources
|
||||
set anAdmResources [lsearch -inline -all -not -exact $anAdmResources ""]
|
||||
|
||||
foreach line $anAdmResources {
|
||||
genResources "${line}"
|
||||
}
|
||||
}
|
||||
|
||||
# Wrapper-function to generate VS project files
|
||||
proc genproj {theIDE args} {
|
||||
set aSupportedIDEs { "vc7" "vc8" "vc9" "vc10" "vc11" "vc12" "vc14" "cbp" "xcd" }
|
||||
set aSupportedIDEs { "vc7" "vc8" "vc9" "vc10" "vc11" "vc12" "vc14" "vc14-uwp" "cbp" "xcd"}
|
||||
set aSupportedPlatforms { "wnt" "lin" "mac" "ios" "qnx" }
|
||||
set isHelpRequire false
|
||||
|
||||
@@ -159,14 +305,15 @@ proc genproj {theIDE args} {
|
||||
puts "usage: genproj IDE \[Platform\] \[-static\] \[-h|-help|--help\]
|
||||
|
||||
IDE must be one of:
|
||||
vc8 - Visual Studio 2005
|
||||
vc9 - Visual Studio 2008
|
||||
vc10 - Visual Studio 2010
|
||||
vc11 - Visual Studio 2012
|
||||
vc12 - Visual Studio 2013
|
||||
vc14 - Visual Studio 2015
|
||||
cbp - CodeBlocks
|
||||
xcd - XCode
|
||||
vc8 - Visual Studio 2005
|
||||
vc9 - Visual Studio 2008
|
||||
vc10 - Visual Studio 2010
|
||||
vc11 - Visual Studio 2012
|
||||
vc12 - Visual Studio 2013
|
||||
vc14 - Visual Studio 2015
|
||||
vc14-uwp - Visual Studio 2015 for Universal Windows Platform project
|
||||
cbp - CodeBlocks
|
||||
xcd - XCode
|
||||
|
||||
Platform (optional, only for CodeBlocks and XCode):
|
||||
wnt - Windows
|
||||
@@ -193,6 +340,7 @@ proc genproj {theIDE args} {
|
||||
OS:MKPRC "$anAdmPath" "$theIDE" "$aLibType" "$aPlatform" "$aCmpl"
|
||||
|
||||
genprojbat "$theIDE" $aPlatform
|
||||
genAllResources
|
||||
}
|
||||
|
||||
proc genprojbat {theIDE thePlatform} {
|
||||
@@ -223,7 +371,7 @@ proc genprojbat {theIDE thePlatform} {
|
||||
file copy -force -- "$::THE_CASROOT/adm/templates/draw.${aTargetPlatformExt}" "$::path/draw.${aTargetPlatformExt}"
|
||||
}
|
||||
|
||||
if {[regexp {(vc)[0-9]*$} $theIDE] == 1} {
|
||||
if {[regexp {(vc)[0-9]*$} $theIDE] == 1 || [regexp {(vc)[0-9]*-uwp$} $theIDE] == 1} {
|
||||
file copy -force -- "$::THE_CASROOT/adm/templates/msvc.bat" "$::path/msvc.bat"
|
||||
} else {
|
||||
switch -exact -- "$theIDE" {
|
||||
@@ -266,7 +414,7 @@ proc OS:MKPRC { theOutDir theIDE theLibType thePlatform theCmpl } {
|
||||
|
||||
# Create output directory
|
||||
set aWokStation "$thePlatform"
|
||||
if { [lsearch -exact {vc7 vc8 vc9 vc10 vc11 vc12 vc14} $theIDE] != -1 } {
|
||||
if { [lsearch -exact {vc7 vc8 vc9 vc10 vc11 vc12 vc14 vc14-uwp} $theIDE] != -1 } {
|
||||
set aWokStation "msvc"
|
||||
}
|
||||
|
||||
@@ -294,6 +442,14 @@ proc OS:MKPRC { theOutDir theIDE theLibType thePlatform theCmpl } {
|
||||
set aModules [osutils:juststation $goaway $aModules]
|
||||
}
|
||||
|
||||
# Draw module is turned off due to it is not supported on UWP
|
||||
if { [regexp {(vc)[0-9]*-uwp$} $theIDE] == 1 } {
|
||||
set aDrawIndex [lsearch -exact ${aModules} "Draw"]
|
||||
if { ${aDrawIndex} != -1 } {
|
||||
set aModules [lreplace ${aModules} ${aDrawIndex} ${aDrawIndex}]
|
||||
}
|
||||
}
|
||||
|
||||
# generate one solution for all projects if complete OS or VAS is processed
|
||||
set anAllSolution "OCCT"
|
||||
|
||||
@@ -318,12 +474,13 @@ proc OS:MKPRC { theOutDir theIDE theLibType thePlatform theCmpl } {
|
||||
"vc7" -
|
||||
"vc8" -
|
||||
"vc9" -
|
||||
"vc10" -
|
||||
"vc11" -
|
||||
"vc12" -
|
||||
"vc14" { OS:MKVC $anOutDir $aModules $anAllSolution $theIDE }
|
||||
"cbp" { OS:MKCBP $anOutDir $aModules $anAllSolution $thePlatform $theCmpl }
|
||||
"xcd" {
|
||||
"vc10" -
|
||||
"vc11" -
|
||||
"vc12" -
|
||||
"vc14" -
|
||||
"vc14-uwp" { OS:MKVC $anOutDir $aModules $anAllSolution $theIDE }
|
||||
"cbp" { OS:MKCBP $anOutDir $aModules $anAllSolution $thePlatform $theCmpl }
|
||||
"xcd" {
|
||||
set ::THE_GUIDS_LIST($::aTKNullKey) "000000000000000000000000"
|
||||
OS:MKXCD $anOutDir $aModules $anAllSolution $theLibType $thePlatform
|
||||
}
|
||||
@@ -659,6 +816,7 @@ proc osutils:collectinc {theModules theIncPath} {
|
||||
}
|
||||
}
|
||||
|
||||
set allHeaderFiles {}
|
||||
if { $aCopyType == "shortcut" } {
|
||||
# template preparation
|
||||
if { ![file exists $::THE_CASROOT/adm/templates/header.in] } {
|
||||
@@ -672,11 +830,14 @@ proc osutils:collectinc {theModules theIncPath} {
|
||||
|
||||
# create and copy short-cut header files
|
||||
foreach anUnit $anUnits {
|
||||
set aHFiles [glob -nocomplain -dir $aCasRoot/src/$anUnit "*.h"]
|
||||
foreach aHeaderFile [concat [glob -nocomplain -dir $aCasRoot/src/$anUnit "*.\[hgl\]xx"] $aHFiles] {
|
||||
set aHeaderFileName [file tail $aHeaderFile]
|
||||
osutils:checksrcfiles ${anUnit}
|
||||
|
||||
regsub -all -- {@OCCT_HEADER_FILE@} $aHeaderTmpl "$aFromBuildIncToSrcPath/$anUnit/$aHeaderFileName" aShortCutHeaderFileContent
|
||||
set aHFiles [_get_used_files ${anUnit} true false]
|
||||
foreach aHeaderFile ${aHFiles} {
|
||||
set aHeaderFileName [lindex ${aHeaderFile} 1]
|
||||
lappend allHeaderFiles "${aHeaderFileName}"
|
||||
|
||||
regsub -all -- {@OCCT_HEADER_FILE_CONTENT@} $aHeaderTmpl "#include \"$aFromBuildIncToSrcPath/$anUnit/$aHeaderFileName\"" aShortCutHeaderFileContent
|
||||
|
||||
if {[file exists "$theIncPath/$aHeaderFileName"] && [file readable "$theIncPath/$aHeaderFileName"]} {
|
||||
set fp [open "$theIncPath/$aHeaderFileName" r]
|
||||
@@ -706,12 +867,15 @@ proc osutils:collectinc {theModules theIncPath} {
|
||||
} else {
|
||||
set nbcopied 0
|
||||
foreach anUnit $anUnits {
|
||||
set aHFiles [glob -nocomplain -dir $aCasRoot/src/$anUnit "*.h"]
|
||||
foreach aHeaderFile [concat [glob -nocomplain -dir $aCasRoot/src/$anUnit "*.\[hgl\]xx"] $aHFiles] {
|
||||
set aHeaderFileName [file tail $aHeaderFile]
|
||||
osutils:checksrcfiles ${anUnit}
|
||||
|
||||
set aHFiles [_get_used_files ${anUnit} true false]
|
||||
foreach aHeaderFile ${aHFiles} {
|
||||
set aHeaderFileName [lindex ${aHeaderFile} 1]
|
||||
lappend allHeaderFiles "${aHeaderFileName}"
|
||||
|
||||
# copy file only if target does not exist or is older than original
|
||||
set torig [file mtime $aHeaderFile]
|
||||
set torig [file mtime $aCasRoot/src/$anUnit/$aHeaderFileName]
|
||||
set tcopy 0
|
||||
if { [file isfile $anIncPath/$aHeaderFileName] } {
|
||||
set tcopy [file mtime $anIncPath/$aHeaderFileName]
|
||||
@@ -722,17 +886,26 @@ proc osutils:collectinc {theModules theIncPath} {
|
||||
if { $tcopy != 0 } {
|
||||
file delete -force "$theIncPath/$aHeaderFileName"
|
||||
}
|
||||
file link -hard $anIncPath/$aHeaderFileName $aHeaderFile
|
||||
file link -hard $anIncPath/$aHeaderFileName $aCasRoot/src/$anUnit/$aHeaderFileName
|
||||
} else {
|
||||
file copy -force $aHeaderFile $anIncPath/$aHeaderFileName
|
||||
file copy -force $aCasRoot/src/$anUnit/$aHeaderFileName $anIncPath/$aHeaderFileName
|
||||
}
|
||||
} elseif { $tcopy != $torig } {
|
||||
puts "Warning: file $anIncPath/$aHeaderFileName is newer than $aHeaderFile, not changed!"
|
||||
puts "Warning: file $anIncPath/$aHeaderFileName is newer than $aCasRoot/src/$anUnit/$aHeaderFileName, not changed!"
|
||||
}
|
||||
}
|
||||
}
|
||||
puts "Info: $nbcopied files updated"
|
||||
}
|
||||
|
||||
# remove header files not listed in FILES
|
||||
set anIncFiles [glob -tails -nocomplain -dir ${anIncPath} "*"]
|
||||
foreach anIncFile ${anIncFiles} {
|
||||
if { [lsearch -exact ${allHeaderFiles} ${anIncFile}] == -1 } {
|
||||
puts "Warning: file ${anIncPath}/${anIncFile} is not presented in the sources and will be removed from ${theIncPath}!"
|
||||
file delete -force "${theIncPath}/${anIncFile}"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Generate header for VS solution file
|
||||
@@ -760,7 +933,7 @@ proc osutils:vcsolution:header { vcversion } {
|
||||
append var \
|
||||
"Microsoft Visual Studio Solution File, Format Version 13.00\n" \
|
||||
"# Visual Studio 2013\n"
|
||||
} elseif { "$vcversion" == "vc14" } {
|
||||
} elseif { "$vcversion" == "vc14" || "$vcversion" == "vc14-uwp"} {
|
||||
append var \
|
||||
"Microsoft Visual Studio Solution File, Format Version 12.00\n" \
|
||||
"# Visual Studio 14\n"
|
||||
@@ -997,19 +1170,40 @@ proc osutils:vcproj:readtemplate {theVcVer isexec} {
|
||||
set aVerExt "v${aVerExt}0"
|
||||
set aCmpl32 ""
|
||||
set aCmpl64 ""
|
||||
set aCharSet "Unicode"
|
||||
if { $isexec } {
|
||||
set anExt "${anExt}x"
|
||||
set what "$what executable"
|
||||
}
|
||||
if { "$theVcVer" == "vc10" } {
|
||||
# SSE2 is enabled by default in vc11+, but not in vc10 for 32-bit target
|
||||
set aCmpl32 "\n <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>"
|
||||
set aCmpl32 "<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>"
|
||||
}
|
||||
set aTmpl [osutils:readtemplate $anExt "MS VC++ project ($what)"]
|
||||
regsub -all -- {__VCVER__} $aTmpl $theVcVer aTmpl
|
||||
regsub -all -- {__VCVEREXT__} $aTmpl $aVerExt aTmpl
|
||||
regsub -all -- {__VCMPL32__} $aTmpl $aCmpl32 aTmpl
|
||||
regsub -all -- {__VCMPL64__} $aTmpl $aCmpl64 aTmpl
|
||||
|
||||
if { $theVcVer == "vc14-uwp" } {
|
||||
set aVerExt "v140"
|
||||
set UwpWinRt "<CompileAsWinRT>false</CompileAsWinRT>"
|
||||
foreach bitness {32 64} {
|
||||
set indent ""
|
||||
if {"[set aCmpl${bitness}]" != ""} {
|
||||
set indent "\n "
|
||||
}
|
||||
set aCmpl${bitness} "[set aCmpl${bitness}]${indent}${UwpWinRt}"
|
||||
}
|
||||
}
|
||||
|
||||
foreach bitness {32 64} {
|
||||
set format_template ""
|
||||
if {"[set aCmpl${bitness}]" == ""} {
|
||||
set format_template "\[\\r\\n\\s\]*"
|
||||
}
|
||||
regsub -all -- "${format_template}__VCMPL${bitness}__" $aTmpl "[set aCmpl${bitness}]" aTmpl
|
||||
}
|
||||
|
||||
regsub -all -- {__VCVER__} $aTmpl $theVcVer aTmpl
|
||||
regsub -all -- {__VCVEREXT__} $aTmpl $aVerExt aTmpl
|
||||
regsub -all -- {__VCCHARSET__} $aTmpl $aCharSet aTmpl
|
||||
return $aTmpl
|
||||
}
|
||||
|
||||
@@ -1081,6 +1275,9 @@ proc osutils:csfList { theOS theCsfLibsMap theCsfFrmsMap } {
|
||||
set aLibsMap(CSF_FreeImagePlus) "freeimage"
|
||||
}
|
||||
}
|
||||
if { "$::HAVE_FFMPEG" == "true" } {
|
||||
set aLibsMap(CSF_FFmpeg) "avcodec avformat swscale avutil"
|
||||
}
|
||||
if { "$::HAVE_GL2PS" == "true" } {
|
||||
set aLibsMap(CSF_GL2PS) "gl2ps"
|
||||
}
|
||||
@@ -1094,6 +1291,12 @@ proc osutils:csfList { theOS theCsfLibsMap theCsfFrmsMap } {
|
||||
set aLibsMap(CSF_VTK) [osutils:vtkCsf "unix"]
|
||||
}
|
||||
}
|
||||
if { "$::HAVE_ZLIB" == "true" } {
|
||||
set aLibsMap(CSF_ZLIB) "zlib"
|
||||
}
|
||||
if { "$::HAVE_LIBLZMA" == "true" } {
|
||||
set aLibsMap(CSF_LIBLZMA) "liblzma"
|
||||
}
|
||||
|
||||
if { "$theOS" == "wnt" } {
|
||||
# WinAPI libraries
|
||||
@@ -1104,7 +1307,6 @@ proc osutils:csfList { theOS theCsfLibsMap theCsfFrmsMap } {
|
||||
set aLibsMap(CSF_opengl32) "opengl32"
|
||||
set aLibsMap(CSF_wsock32) "wsock32"
|
||||
set aLibsMap(CSF_netapi32) "netapi32"
|
||||
set aLibsMap(CSF_AviLibs) "ws2_32 vfw32"
|
||||
set aLibsMap(CSF_OpenGlLibs) "opengl32"
|
||||
if { "$::HAVE_GLES2" == "true" } {
|
||||
set aLibsMap(CSF_OpenGlLibs) "libEGL libGLESv2"
|
||||
@@ -1453,7 +1655,14 @@ proc osutils:vcproj { theVcVer theOutDir theToolKit theGuidsMap {theProjTmpl {}
|
||||
}
|
||||
regsub -all -- {__PROJECT_GUID__} $theProjTmpl $aGuidsMap($theToolKit) theProjTmpl
|
||||
|
||||
set theProjTmpl [osutils:uwp:proj ${theVcVer} ${theProjTmpl}]
|
||||
|
||||
set aUsedLibs [list]
|
||||
|
||||
if { "$theVcVer" == "vc14-uwp" } {
|
||||
lappend aUsedLibs "WindowsApp.lib"
|
||||
}
|
||||
|
||||
foreach tkx [osutils:commonUsedTK $theToolKit] {
|
||||
lappend aUsedLibs "${tkx}.lib"
|
||||
}
|
||||
@@ -2852,12 +3061,12 @@ proc osutils:xcdtk { theOutDir theToolKit theGuidsMap theIsStatic thePlatform {t
|
||||
if { "$thePlatform" == "ios" } {
|
||||
puts $aPbxprojFile "\t\t\t\t\"ARCHS\[sdk=iphoneos\*\]\" = \"\$(ARCHS_STANDARD)\";";
|
||||
puts $aPbxprojFile "\t\t\t\t\"ARCHS\[sdk=iphonesimulator\*\]\" = \"x86_64\";";
|
||||
puts $aPbxprojFile "\t\t\t\tCLANG_CXX_LIBRARY = \"libc++\";"
|
||||
puts $aPbxprojFile "\t\t\t\tCLANG_ENABLE_MODULES = YES;"
|
||||
puts $aPbxprojFile "\t\t\t\tCLANG_ENABLE_OBJC_ARC = YES;"
|
||||
}
|
||||
puts $aPbxprojFile "\t\t\t\tARCHS = \"\$(ARCHS_STANDARD_64_BIT)\";"
|
||||
puts $aPbxprojFile "\t\t\t\tCLANG_CXX_LANGUAGE_STANDARD = \"gnu++0x\";"
|
||||
puts $aPbxprojFile "\t\t\t\tCLANG_CXX_LIBRARY = \"libc++\";"
|
||||
puts $aPbxprojFile "\t\t\t\tCLANG_CXX_LANGUAGE_STANDARD = \"c++0x\";"
|
||||
puts $aPbxprojFile "\t\t\t\tCOPY_PHASE_STRIP = NO;"
|
||||
puts $aPbxprojFile "\t\t\t\tGCC_C_LANGUAGE_STANDARD = gnu99;"
|
||||
puts $aPbxprojFile "\t\t\t\tGCC_DYNAMIC_NO_PIC = NO;"
|
||||
@@ -2895,12 +3104,12 @@ proc osutils:xcdtk { theOutDir theToolKit theGuidsMap theIsStatic thePlatform {t
|
||||
if { "$thePlatform" == "ios" } {
|
||||
puts $aPbxprojFile "\t\t\t\t\"ARCHS\[sdk=iphoneos\*\]\" = \"\$(ARCHS_STANDARD)\";";
|
||||
puts $aPbxprojFile "\t\t\t\t\"ARCHS\[sdk=iphonesimulator\*\]\" = \"x86_64\";";
|
||||
puts $aPbxprojFile "\t\t\t\tCLANG_CXX_LIBRARY = \"libc++\";"
|
||||
puts $aPbxprojFile "\t\t\t\tCLANG_ENABLE_MODULES = YES;"
|
||||
puts $aPbxprojFile "\t\t\t\tCLANG_ENABLE_OBJC_ARC = YES;"
|
||||
}
|
||||
puts $aPbxprojFile "\t\t\t\tARCHS = \"\$(ARCHS_STANDARD_64_BIT)\";"
|
||||
puts $aPbxprojFile "\t\t\t\tCLANG_CXX_LANGUAGE_STANDARD = \"gnu++0x\";"
|
||||
puts $aPbxprojFile "\t\t\t\tCLANG_CXX_LIBRARY = \"libc++\";"
|
||||
puts $aPbxprojFile "\t\t\t\tCLANG_CXX_LANGUAGE_STANDARD = \"c++0x\";"
|
||||
puts $aPbxprojFile "\t\t\t\tCOPY_PHASE_STRIP = YES;"
|
||||
puts $aPbxprojFile "\t\t\t\tGCC_C_LANGUAGE_STANDARD = gnu99;"
|
||||
puts $aPbxprojFile "\t\t\t\tGCC_ENABLE_OBJC_EXCEPTIONS = YES;"
|
||||
@@ -3080,3 +3289,93 @@ proc osutils:xcdx { theOutDir theExecutable theGuidsMap } {
|
||||
puts $aPlistFile $aPlistTmpl
|
||||
close $aPlistFile
|
||||
}
|
||||
|
||||
# Returns available Windows SDKs versions
|
||||
proc osutils:sdk { theSdkMajorVer {isQuietMode false} {theSdkDirectories {}} } {
|
||||
if { ![llength ${theSdkDirectories}] } {
|
||||
foreach anEnvVar { "ProgramFiles" "ProgramFiles\(x86\)" "ProgramW6432" } {
|
||||
if {[ info exists ::env(${anEnvVar}) ]} {
|
||||
lappend theSdkDirectories "$::env(${anEnvVar})/Windows Kits/${theSdkMajorVer}/Include"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
set sdk_versions {}
|
||||
foreach sdk_dir ${theSdkDirectories} {
|
||||
if { [file isdirectory ${sdk_dir}] } {
|
||||
lappend sdk_versions [glob -tails -directory "${sdk_dir}" -type d *]
|
||||
}
|
||||
}
|
||||
|
||||
if {![llength ${sdk_versions}] && !${isQuietMode}} {
|
||||
error "Error : Could not find Windows SDK ${theSdkMajorVer}"
|
||||
}
|
||||
|
||||
return [join [lsort -unique ${sdk_versions}] " "]
|
||||
}
|
||||
|
||||
# Generate global properties to Visual Studio project file for UWP solution
|
||||
proc osutils:uwp:proj { theVcVer theProjTmpl } {
|
||||
|
||||
set uwp_properties ""
|
||||
set uwp_generate_metadata ""
|
||||
set uwp_app_container ""
|
||||
|
||||
set format_template ""
|
||||
|
||||
if { ${theVcVer} == "vc14-uwp" } {
|
||||
set sdk_versions [osutils:sdk 10]
|
||||
set sdk_max_ver [lindex ${sdk_versions} end]
|
||||
|
||||
set uwp_properties "<DefaultLanguage>en-US</DefaultLanguage>\n \
|
||||
<ApplicationType>Windows Store</ApplicationType>\n \
|
||||
<ApplicationTypeRevision>10.0</ApplicationTypeRevision>\n \
|
||||
<MinimumVisualStudioVersion>14.0</MinimumVisualStudioVersion>\n \
|
||||
<AppContainerApplication>true</AppContainerApplication>\n \
|
||||
<WindowsTargetPlatformVersion>${sdk_max_ver}</WindowsTargetPlatformVersion>\n \
|
||||
<WindowsTargetPlatformMinVersion>${sdk_max_ver}</WindowsTargetPlatformMinVersion>"
|
||||
|
||||
set uwp_generate_metadata "<GenerateWindowsMetadata>false</GenerateWindowsMetadata>"
|
||||
|
||||
regsub -all -- {[\r\n\s]*<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>} ${theProjTmpl} "" theProjTmpl
|
||||
} else {
|
||||
set format_template "\[\\r\\n\\s\]*"
|
||||
}
|
||||
|
||||
regsub -all -- "${format_template}__UWP_PROPERTIES__" ${theProjTmpl} "${uwp_properties}" theProjTmpl
|
||||
regsub -all -- "${format_template}__UWP_GENERATE_METADATA__" ${theProjTmpl} "${uwp_generate_metadata}" theProjTmpl
|
||||
|
||||
return ${theProjTmpl}
|
||||
}
|
||||
|
||||
# Report all files found in package directory but not listed in FILES
|
||||
proc osutils:checksrcfiles { theUnit } {
|
||||
global path
|
||||
set aCasRoot [file normalize ${path}]
|
||||
|
||||
if {![file isdirectory ${aCasRoot}]} {
|
||||
puts "OCCT directory is not defined correctly: ${aCasRoot}"
|
||||
return
|
||||
}
|
||||
|
||||
set anUnitAbsPath [file normalize "${aCasRoot}/src/${theUnit}"]
|
||||
|
||||
if {[file exists "${anUnitAbsPath}/FILES"]} {
|
||||
set aFilesFile [open "${anUnitAbsPath}/FILES" rb]
|
||||
set aFilesFileList [split [read ${aFilesFile}] "\n"]
|
||||
close ${aFilesFile}
|
||||
|
||||
set aFilesFileList [lsearch -inline -all -not -exact ${aFilesFileList} ""]
|
||||
|
||||
# report all files not listed in FILES
|
||||
set anAllFiles [glob -tails -nocomplain -dir ${anUnitAbsPath} "*"]
|
||||
foreach aFile ${anAllFiles} {
|
||||
if { "${aFile}" == "FILES" } {
|
||||
continue
|
||||
}
|
||||
if { [lsearch -exact ${aFilesFileList} ${aFile}] == -1 } {
|
||||
puts "Warning: file ${anUnitAbsPath}/${aFile} is not listed in ${anUnitAbsPath}/FILES!"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -2,6 +2,7 @@
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@X_COMPILER_BITNESS@'">
|
||||
<LocalDebuggerEnvironment>CASROOT=@CMAKE_SOURCE_DIR@
|
||||
CSF_FPE=@BUILD_ENABLE_FPE_SIGNAL_HANDLER@
|
||||
CSF_OCCTResourcePath=@CMAKE_SOURCE_DIR@/src
|
||||
CSF_OCCTDataPath=@CMAKE_SOURCE_DIR@/data
|
||||
CSF_OCCTSamplesPath=@CMAKE_SOURCE_DIR@/samples
|
||||
@@ -14,6 +15,7 @@ PATH=@3RDPARTY_DLL_DIRS_FOR_PATH@;%PATH%
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='RelWithDebInfo|@X_COMPILER_BITNESS@'">
|
||||
<LocalDebuggerEnvironment>CASROOT=@CMAKE_SOURCE_DIR@
|
||||
CSF_FPE=@BUILD_ENABLE_FPE_SIGNAL_HANDLER@
|
||||
CSF_OCCTResourcePath=@CMAKE_SOURCE_DIR@/src
|
||||
CSF_OCCTDataPath=@CMAKE_SOURCE_DIR@/data
|
||||
CSF_OCCTSamplesPath=@CMAKE_SOURCE_DIR@/samples
|
||||
@@ -26,6 +28,7 @@ PATH=@3RDPARTY_DLL_DIRS_FOR_PATH@;%PATH%
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@X_COMPILER_BITNESS@'">
|
||||
<LocalDebuggerEnvironment>CASROOT=@CMAKE_SOURCE_DIR@
|
||||
CSF_FPE=@BUILD_ENABLE_FPE_SIGNAL_HANDLER@
|
||||
CSF_OCCTResourcePath=@CMAKE_SOURCE_DIR@/src
|
||||
CSF_OCCTDataPath=@CMAKE_SOURCE_DIR@/data
|
||||
CSF_OCCTSamplesPath=@CMAKE_SOURCE_DIR@/samples
|
||||
|
8
adm/templates/android.toolchain.config.cmake
Normal file
@@ -0,0 +1,8 @@
|
||||
# A toolchain file to configure a Makefile Generators or the Ninja generator to target Android for cross-compiling.
|
||||
# Set CMAKE_ANDROID_NDK variable equal to your Android NDK path.
|
||||
|
||||
set (CMAKE_SYSTEM_NAME Android)
|
||||
set (CMAKE_SYSTEM_VERSION 15) # API level
|
||||
set (CMAKE_ANDROID_ARCH_ABI armeabi-v7a)
|
||||
set (CMAKE_ANDROID_NDK "")
|
||||
set (CMAKE_ANDROID_STL_TYPE gnustl_shared)
|
@@ -2,13 +2,16 @@ echo off
|
||||
|
||||
if /I "%VCVER%" == "@COMPILER@" (
|
||||
if "%ARCH%" == "@COMPILER_BITNESS@" (
|
||||
rem set environment variables used by OCCT
|
||||
set CSF_FPE=@BUILD_ENABLE_FPE_SIGNAL_HANDLER@
|
||||
|
||||
set "TCL_DIR=@3RDPARTY_TCL_DLL_DIR@"
|
||||
set "TK_DIR=@3RDPARTY_TK_DLL_DIR@"
|
||||
set "FREETYPE_DIR=@3RDPARTY_FREETYPE_DLL_DIR@"
|
||||
set "FREEIMAGE_DIR=@3RDPARTY_FREEIMAGE_DLL_DIR@"
|
||||
set "EGL_DIR=@3RDPARTY_EGL_DLL_DIR@"
|
||||
set "GLES2_DIR=@3RDPARTY_GLES2_DLL_DIR@"
|
||||
set "GL2PS_DIR=@3RDPARTY_GL2PS_DLL_DIR@"
|
||||
set "FREEIMAGE_DIR=@3RDPARTY_FREEIMAGE_DLL_DIRS@"
|
||||
set "EGL_DIR=@3RDPARTY_EGL_DLL_DIRS@"
|
||||
set "GLES2_DIR=@3RDPARTY_GLES2_DLL_DIRS@"
|
||||
set "GL2PS_DIR=@3RDPARTY_GL2PS_DLL_DIRS@"
|
||||
set "TBB_DIR=@3RDPARTY_TBB_DLL_DIR@"
|
||||
set "VTK_DIR=@3RDPARTY_VTK_DLL_DIR@"
|
||||
|
||||
|
@@ -2,11 +2,14 @@
|
||||
|
||||
if [ "$1" == "@BIN_LETTER@" ]; then
|
||||
if [ "$2" == "@COMPILER_BITNESS@" ]; then
|
||||
# set environment variables used by OCCT
|
||||
export CSF_FPE=@BUILD_ENABLE_FPE_SIGNAL_HANDLER@
|
||||
|
||||
export TCL_DIR="@3RDPARTY_TCL_LIBRARY_DIR@"
|
||||
export TK_DIR="@3RDPARTY_TK_LIBRARY_DIR@"
|
||||
export FREETYPE_DIR="@3RDPARTY_FREETYPE_LIBRARY_DIR@"
|
||||
export FREEIMAGE_DIR="@3RDPARTY_FREEIMAGE_LIBRARY_DIR@"
|
||||
export GL2PS_DIR="@3RDPARTY_GL2PS_LIBRARY_DIR@"
|
||||
export FREEIMAGE_DIR="@3RDPARTY_FREEIMAGE_LIBRARY_DIRS@"
|
||||
export GL2PS_DIR="@3RDPARTY_GL2PS_LIBRARY_DIRS@"
|
||||
export TBB_DIR="@3RDPARTY_TBB_LIBRARY_DIR@"
|
||||
export VTK_DIR="@3RDPARTY_VTK_LIBRARY_DIR@"
|
||||
|
||||
|
@@ -4,31 +4,34 @@ rem CASDEB comes as third argument
|
||||
|
||||
if /I "%VCVER%" == "@COMPILER@" (
|
||||
if "%ARCH%" == "@COMPILER_BITNESS@" (
|
||||
rem set environment variables used by OCCT
|
||||
set CSF_FPE=@BUILD_ENABLE_FPE_SIGNAL_HANDLER@
|
||||
|
||||
set "TCL_DIR=@USED_3RDPARTY_TCL_DIR@"
|
||||
set "TK_DIR=@USED_3RDPARTY_TK_DIR@"
|
||||
set "FREETYPE_DIR=@USED_3RDPARTY_FREETYPE_DIR@"
|
||||
set "FREEIMAGE_DIR=@USED_3RDPARTY_FREEIMAGE_DIR@"
|
||||
set "EGL_DIR=@USED_3RDPARTY_EGL_DIR@"
|
||||
set "GLES2_DIR=@USED_3RDPARTY_GLES2_DIR@"
|
||||
set "GL2PS_DIR=@USED_3RDPARTY_GL2PS_DIR@"
|
||||
set "FREEIMAGE_DIR=@USED_3RDPARTY_FREEIMAGE_DIRS@"
|
||||
set "EGL_DIR=@USED_3RDPARTY_EGL_DIRS@"
|
||||
set "GLES2_DIR=@USED_3RDPARTY_GLES2_DIRS@"
|
||||
set "GL2PS_DIR=@USED_3RDPARTY_GL2PS_DIRS@"
|
||||
set "TBB_DIR=@USED_3RDPARTY_TBB_DIR@"
|
||||
set "VTK_DIR=@USED_3RDPARTY_VTK_DIR@"
|
||||
|
||||
set "TCL_VERSION_WITH_DOT=@3RDPARTY_TCL_LIBRARY_VERSION_WITH_DOT@"
|
||||
set "TK_VERSION_WITH_DOT=@3RDPARTY_TK_LIBRARY_VERSION_WITH_DOT@"
|
||||
|
||||
set "CSF_OCCTBinPath=@INSTALL_DIR@/@INSTALL_DIR_BIN@%3"
|
||||
set "CSF_OCCTLibPath=@INSTALL_DIR@/@INSTALL_DIR_LIB@%3"
|
||||
set "CSF_OCCTBinPath=@INSTALL_DIR_ABSOLUTE@/@INSTALL_DIR_BIN@%3"
|
||||
set "CSF_OCCTLibPath=@INSTALL_DIR_ABSOLUTE@/@INSTALL_DIR_LIB@%3"
|
||||
|
||||
set "CSF_OCCTIncludePath=@INSTALL_DIR@/@INSTALL_DIR_INCLUDE@"
|
||||
set "CSF_OCCTResourcePath=@INSTALL_DIR@/@INSTALL_DIR_RESOURCE@"
|
||||
set "CSF_OCCTDataPath=@INSTALL_DIR@/@INSTALL_DIR_DATA@"
|
||||
set "CSF_OCCTSamplesPath=@INSTALL_DIR@/@INSTALL_DIR_SAMPLES@"
|
||||
set "CSF_OCCTTestsPath=@INSTALL_DIR@/@INSTALL_DIR_TESTS@"
|
||||
set "CSF_OCCTDocPath=@INSTALL_DIR@/@INSTALL_DIR_DOC@"
|
||||
set "CSF_OCCTIncludePath=@INSTALL_DIR_ABSOLUTE@/@INSTALL_DIR_INCLUDE@"
|
||||
set "CSF_OCCTResourcePath=@INSTALL_DIR_ABSOLUTE@/@INSTALL_DIR_RESOURCE@"
|
||||
set "CSF_OCCTDataPath=@INSTALL_DIR_ABSOLUTE@/@INSTALL_DIR_DATA@"
|
||||
set "CSF_OCCTSamplesPath=@INSTALL_DIR_ABSOLUTE@/@INSTALL_DIR_SAMPLES@"
|
||||
set "CSF_OCCTTestsPath=@INSTALL_DIR_ABSOLUTE@/@INSTALL_DIR_TESTS@"
|
||||
set "CSF_OCCTDocPath=@INSTALL_DIR_ABSOLUTE@/@INSTALL_DIR_DOC@"
|
||||
|
||||
rem for compatability with external application using CASROOT
|
||||
set "CASROOT=@INSTALL_DIR@"
|
||||
set "CASROOT=@INSTALL_DIR_ABSOLUTE@"
|
||||
)
|
||||
)
|
||||
|
||||
|
@@ -2,28 +2,31 @@
|
||||
|
||||
if [ "$1" == "@BIN_LETTER@" ]; then
|
||||
if [ "$2" == "@COMPILER_BITNESS@" ]; then
|
||||
# set environment variables used by OCCT
|
||||
export CSF_FPE=@BUILD_ENABLE_FPE_SIGNAL_HANDLER@
|
||||
|
||||
export TCL_DIR="@USED_3RDPARTY_TCL_DIR@"
|
||||
export TK_DIR="@USED_3RDPARTY_TK_DIR@"
|
||||
export FREETYPE_DIR="@USED_3RDPARTY_FREETYPE_DIR@"
|
||||
export FREEIMAGE_DIR="@USED_3RDPARTY_FREEIMAGE_DIR@"
|
||||
export GL2PS_DIR="@USED_3RDPARTY_GL2PS_DIR@"
|
||||
export FREEIMAGE_DIR="@USED_3RDPARTY_FREEIMAGE_DIRS@"
|
||||
export GL2PS_DIR="@USED_3RDPARTY_GL2PS_DIRS@"
|
||||
export TBB_DIR="@USED_3RDPARTY_TBB_DIR@"
|
||||
export VTK_DIR="@USED_3RDPARTY_VTK_DIR@"
|
||||
|
||||
export TCL_VERSION_WITH_DOT="@3RDPARTY_TCL_LIBRARY_VERSION_WITH_DOT@"
|
||||
export TK_VERSION_WITH_DOT="@3RDPARTY_TK_LIBRARY_VERSION_WITH_DOT@"
|
||||
|
||||
export CSF_OCCTBinPath="@INSTALL_DIR@/@INSTALL_DIR_BIN@"
|
||||
export CSF_OCCTLibPath="@INSTALL_DIR@/@INSTALL_DIR_LIB@"
|
||||
export CSF_OCCTIncludePath="@INSTALL_DIR@/@INSTALL_DIR_INCLUDE@"
|
||||
export CSF_OCCTResourcePath="@INSTALL_DIR@/@INSTALL_DIR_RESOURCE@"
|
||||
export CSF_OCCTDataPath="@INSTALL_DIR@/@INSTALL_DIR_DATA@"
|
||||
export CSF_OCCTSamplesPath="@INSTALL_DIR@/@INSTALL_DIR_SAMPLES@"
|
||||
export CSF_OCCTTestsPath="@INSTALL_DIR@/@INSTALL_DIR_TESTS@"
|
||||
export CSF_OCCTDocPath="@INSTALL_DIR@/@INSTALL_DIR_DOC@"
|
||||
export CSF_OCCTBinPath="@INSTALL_DIR_ABSOLUTE@/@INSTALL_DIR_BIN@"
|
||||
export CSF_OCCTLibPath="@INSTALL_DIR_ABSOLUTE@/@INSTALL_DIR_LIB@"
|
||||
export CSF_OCCTIncludePath="@INSTALL_DIR_ABSOLUTE@/@INSTALL_DIR_INCLUDE@"
|
||||
export CSF_OCCTResourcePath="@INSTALL_DIR_ABSOLUTE@/@INSTALL_DIR_RESOURCE@"
|
||||
export CSF_OCCTDataPath="@INSTALL_DIR_ABSOLUTE@/@INSTALL_DIR_DATA@"
|
||||
export CSF_OCCTSamplesPath="@INSTALL_DIR_ABSOLUTE@/@INSTALL_DIR_SAMPLES@"
|
||||
export CSF_OCCTTestsPath="@INSTALL_DIR_ABSOLUTE@/@INSTALL_DIR_TESTS@"
|
||||
export CSF_OCCTDocPath="@INSTALL_DIR_ABSOLUTE@/@INSTALL_DIR_DOC@"
|
||||
|
||||
# for compatability with external application using CASROOT
|
||||
export CASROOT="@INSTALL_DIR@"
|
||||
export CASROOT="@INSTALL_DIR_ABSOLUTE@"
|
||||
fi
|
||||
fi
|
||||
|
||||
|
@@ -18,10 +18,13 @@ set "VCVARS="
|
||||
set "HAVE_TBB=false"
|
||||
set "HAVE_OPENCL=false"
|
||||
set "HAVE_FREEIMAGE=false"
|
||||
set "HAVE_FFMPEG=false"
|
||||
set "HAVE_GL2PS=false"
|
||||
set "HAVE_VTK=false"
|
||||
set "HAVE_GLES2=false"
|
||||
set "HAVE_D3D=false"
|
||||
set "HAVE_ZLIB=false"
|
||||
set "HAVE_LIBLZMA=false"
|
||||
set "CSF_OPT_INC="
|
||||
set "CSF_OPT_LIB32="
|
||||
set "CSF_OPT_LIB64="
|
||||
@@ -58,20 +61,16 @@ set "CSF_OPT_BIN64I=%CSF_OPT_BIN64%"
|
||||
rem ----- Optional 3rd-parties should be enabled by HAVE macros -----
|
||||
set "CSF_OPT_CMPL="
|
||||
set "PRODUCTS_DEFINES="
|
||||
if ["%HAVE_TBB%"] == ["true"] set "PRODUCTS_DEFINES=%PRODUCTS_DEFINES% -DHAVE_TBB"
|
||||
if ["%HAVE_OPENCL%"] == ["true"] set "PRODUCTS_DEFINES=%PRODUCTS_DEFINES% -DHAVE_OPENCL"
|
||||
if ["%HAVE_GL2PS%"] == ["true"] set "PRODUCTS_DEFINES=%PRODUCTS_DEFINES% -DHAVE_GL2PS"
|
||||
if ["%HAVE_FREEIMAGE%"] == ["true"] set "PRODUCTS_DEFINES=%PRODUCTS_DEFINES% -DHAVE_FREEIMAGE"
|
||||
if ["%HAVE_VTK%"] == ["true"] set "PRODUCTS_DEFINES=%PRODUCTS_DEFINES% -DHAVE_VTK"
|
||||
if ["%HAVE_GLES2%"] == ["true"] set "PRODUCTS_DEFINES=%PRODUCTS_DEFINES% -DHAVE_GLES2"
|
||||
if ["%HAVE_D3D%"] == ["true"] set "PRODUCTS_DEFINES=%PRODUCTS_DEFINES% -DHAVE_D3D"
|
||||
if ["%HAVE_TBB%"] == ["true"] set "CSF_DEFINES=HAVE_TBB;%CSF_DEFINES%"
|
||||
if ["%HAVE_OPENCL%"] == ["true"] set "CSF_DEFINES=HAVE_OPENCL;%CSF_DEFINES%"
|
||||
if ["%HAVE_GL2PS%"] == ["true"] set "CSF_DEFINES=HAVE_GL2PS;%CSF_DEFINES%"
|
||||
if ["%HAVE_FREEIMAGE%"] == ["true"] set "CSF_DEFINES=HAVE_FREEIMAGE;%CSF_DEFINES%"
|
||||
if ["%HAVE_VTK%"] == ["true"] set "CSF_DEFINES=HAVE_VTK;%CSF_DEFINES%"
|
||||
if ["%HAVE_GLES2%"] == ["true"] set "CSF_DEFINES=HAVE_GLES2;%CSF_DEFINES%"
|
||||
if ["%HAVE_D3D%"] == ["true"] set "CSF_DEFINES=HAVE_D3D;%CSF_DEFINES%"
|
||||
if ["%HAVE_TBB%"] == ["true"] set "PRODUCTS_DEFINES=%PRODUCTS_DEFINES% -DHAVE_TBB" & set "CSF_DEFINES=HAVE_TBB;%CSF_DEFINES%"
|
||||
if ["%HAVE_OPENCL%"] == ["true"] set "PRODUCTS_DEFINES=%PRODUCTS_DEFINES% -DHAVE_OPENCL" & set "CSF_DEFINES=HAVE_OPENCL;%CSF_DEFINES%"
|
||||
if ["%HAVE_GL2PS%"] == ["true"] set "PRODUCTS_DEFINES=%PRODUCTS_DEFINES% -DHAVE_GL2PS" & set "CSF_DEFINES=HAVE_GL2PS;%CSF_DEFINES%"
|
||||
if ["%HAVE_FREEIMAGE%"] == ["true"] set "PRODUCTS_DEFINES=%PRODUCTS_DEFINES% -DHAVE_FREEIMAGE" & set "CSF_DEFINES=HAVE_FREEIMAGE;%CSF_DEFINES%"
|
||||
if ["%HAVE_FFMPEG%"] == ["true"] set "PRODUCTS_DEFINES=%PRODUCTS_DEFINES% -DHAVE_FFMPEG" & set "CSF_DEFINES=HAVE_FFMPEG;%CSF_DEFINES%"
|
||||
if ["%HAVE_VTK%"] == ["true"] set "PRODUCTS_DEFINES=%PRODUCTS_DEFINES% -DHAVE_VTK" & set "CSF_DEFINES=HAVE_VTK;%CSF_DEFINES%"
|
||||
if ["%HAVE_GLES2%"] == ["true"] set "PRODUCTS_DEFINES=%PRODUCTS_DEFINES% -DHAVE_GLES2" & set "CSF_DEFINES=HAVE_GLES2;%CSF_DEFINES%"
|
||||
if ["%HAVE_D3D%"] == ["true"] set "PRODUCTS_DEFINES=%PRODUCTS_DEFINES% -DHAVE_D3D" & set "CSF_DEFINES=HAVE_D3D;%CSF_DEFINES%"
|
||||
if ["%HAVE_ZLIB%"] == ["true"] set "PRODUCTS_DEFINES=%PRODUCTS_DEFINES% -DHAVE_ZLIB" & set "CSF_DEFINES=HAVE_ZLIB;%CSF_DEFINES%"
|
||||
if ["%HAVE_LIBLZMA%"] == ["true"] set "PRODUCTS_DEFINES=%PRODUCTS_DEFINES% -DHAVE_LIBLZMA" & set "CSF_DEFINES=HAVE_LIBLZMA;%CSF_DEFINES%"
|
||||
|
||||
rem Eliminate VS warning
|
||||
if ["%CSF_DEFINES%"] == [""] set "CSF_DEFINES=;"
|
||||
@@ -137,8 +136,6 @@ set "CSF_PluginDefaults=%CSF_OCCTResourcePath%\StdResource"
|
||||
set "CSF_XCAFDefaults=%CSF_OCCTResourcePath%\StdResource"
|
||||
set "CSF_TObjDefaults=%CSF_OCCTResourcePath%\StdResource"
|
||||
set "CSF_StandardLiteDefaults=%CSF_OCCTResourcePath%\StdResource"
|
||||
set "CSF_UnitsLexicon=%CSF_OCCTResourcePath%\UnitsAPI\Lexi_Expr.dat"
|
||||
set "CSF_UnitsDefinition=%CSF_OCCTResourcePath%\UnitsAPI\Units.dat"
|
||||
set "CSF_IGESDefaults=%CSF_OCCTResourcePath%\XSTEPResource"
|
||||
set "CSF_STEPDefaults=%CSF_OCCTResourcePath%\XSTEPResource"
|
||||
set "CSF_XmlOcafResource=%CSF_OCCTResourcePath%\XmlOcafResource"
|
||||
|
@@ -58,8 +58,6 @@ set "CSF_PluginDefaults=%CSF_OCCTResourcePath%\StdResource"
|
||||
set "CSF_XCAFDefaults=%CSF_OCCTResourcePath%\StdResource"
|
||||
set "CSF_TObjDefaults=%CSF_OCCTResourcePath%\StdResource"
|
||||
set "CSF_StandardLiteDefaults=%CSF_OCCTResourcePath%\StdResource"
|
||||
set "CSF_UnitsLexicon=%CSF_OCCTResourcePath%\UnitsAPI\Lexi_Expr.dat"
|
||||
set "CSF_UnitsDefinition=%CSF_OCCTResourcePath%\UnitsAPI\Units.dat"
|
||||
set "CSF_IGESDefaults=%CSF_OCCTResourcePath%\XSTEPResource"
|
||||
set "CSF_STEPDefaults=%CSF_OCCTResourcePath%\XSTEPResource"
|
||||
set "CSF_XmlOcafResource=%CSF_OCCTResourcePath%\XmlOcafResource"
|
||||
|
@@ -4,7 +4,7 @@ if exist "%~dp0custom.bat" (
|
||||
call "%~dp0custom.bat" %1 %2 %3
|
||||
)
|
||||
|
||||
call "@INSTALL_DIR@\@INSTALL_DIR_SCRIPT@\env.bat" %1 %2 %3
|
||||
call "@INSTALL_DIR_ABSOLUTE@\@INSTALL_DIR_SCRIPT@\env.bat" %1 %2 %3
|
||||
|
||||
set "BIN_DIR=win%ARCH%\%VCVER%\bind"
|
||||
set "LIB_DIR=win%ARCH%\%VCVER%\libd"
|
||||
|
@@ -6,8 +6,8 @@ if [ -e "custom.sh" ]; then
|
||||
source "custom.sh";
|
||||
fi
|
||||
|
||||
if [ -e "@INSTALL_DIR@/@INSTALL_DIR_SCRIPT@/env.sh" ]; then
|
||||
source "@INSTALL_DIR@/@INSTALL_DIR_SCRIPT@/env.sh";
|
||||
if [ -e "@INSTALL_DIR_ABSOLUTE@/@INSTALL_DIR_SCRIPT@/env.sh" ]; then
|
||||
source "@INSTALL_DIR_ABSOLUTE@/@INSTALL_DIR_SCRIPT@/env.sh";
|
||||
fi
|
||||
|
||||
if test "${QTDIR}" == ""; then
|
||||
|
@@ -10,9 +10,12 @@ export TARGET="";
|
||||
export HAVE_TBB="false";
|
||||
export HAVE_OPENCL="false";
|
||||
export HAVE_FREEIMAGE="false";
|
||||
export HAVE_FFMPEG="false";
|
||||
export HAVE_GL2PS="false";
|
||||
export HAVE_VTK="false";
|
||||
export HAVE_GLES2="false";
|
||||
export HAVE_ZLIB="false";
|
||||
export HAVE_LIBLZMA="false";
|
||||
export MACOSX_USE_GLX="false";
|
||||
export CSF_OPT_INC=""
|
||||
export CSF_OPT_LIB32=""
|
||||
@@ -91,28 +94,17 @@ fi
|
||||
export CSF_OPT_CMPL=""
|
||||
|
||||
# Optiona 3rd-parties should be enabled by HAVE macros
|
||||
if [ "$HAVE_TBB" == "true" ]; then
|
||||
export CSF_OPT_CMPL="${CSF_OPT_CMPL} -DHAVE_TBB"
|
||||
fi
|
||||
if [ "$HAVE_OPENCL" == "true" ]; then
|
||||
export CSF_OPT_CMPL="${CSF_OPT_CMPL} -DHAVE_OPENCL"
|
||||
fi
|
||||
if [ "$HAVE_FREEIMAGE" == "true" ]; then
|
||||
export CSF_OPT_CMPL="${CSF_OPT_CMPL} -DHAVE_FREEIMAGE"
|
||||
fi
|
||||
if [ "$HAVE_GL2PS" == "true" ]; then
|
||||
export CSF_OPT_CMPL="${CSF_OPT_CMPL} -DHAVE_GL2PS"
|
||||
fi
|
||||
if [ "$HAVE_GLES2" == "true" ]; then
|
||||
export CSF_OPT_CMPL="${CSF_OPT_CMPL} -DHAVE_GLES2"
|
||||
fi
|
||||
if [ "$HAVE_VTK" == "true" ]; then
|
||||
export CSF_OPT_CMPL="${CSF_OPT_CMPL} -DHAVE_VTK"
|
||||
fi
|
||||
if [ "$HAVE_TBB" == "true" ]; then export CSF_OPT_CMPL="${CSF_OPT_CMPL} -DHAVE_TBB"; fi
|
||||
if [ "$HAVE_OPENCL" == "true" ]; then export CSF_OPT_CMPL="${CSF_OPT_CMPL} -DHAVE_OPENCL"; fi
|
||||
if [ "$HAVE_FREEIMAGE" == "true" ]; then export CSF_OPT_CMPL="${CSF_OPT_CMPL} -DHAVE_FREEIMAGE"; fi
|
||||
if [ "$HAVE_FFMPEG" == "true" ]; then export CSF_OPT_CMPL="${CSF_OPT_CMPL} -DHAVE_FFMPEG"; fi
|
||||
if [ "$HAVE_GL2PS" == "true" ]; then export CSF_OPT_CMPL="${CSF_OPT_CMPL} -DHAVE_GL2PS"; fi
|
||||
if [ "$HAVE_GLES2" == "true" ]; then export CSF_OPT_CMPL="${CSF_OPT_CMPL} -DHAVE_GLES2"; fi
|
||||
if [ "$HAVE_VTK" == "true" ]; then export CSF_OPT_CMPL="${CSF_OPT_CMPL} -DHAVE_VTK"; fi
|
||||
if [ "$HAVE_ZLIB" == "true" ]; then export CSF_OPT_CMPL="${CSF_OPT_CMPL} -DHAVE_ZLIB"; fi
|
||||
if [ "$HAVE_LIBLZMA" == "true" ]; then export CSF_OPT_CMPL="${CSF_OPT_CMPL} -DHAVE_LIBLZMA"; fi
|
||||
# Option to compile OCCT with X11 libs on Mac OS X
|
||||
if [ "$MACOSX_USE_GLX" == "true" ]; then
|
||||
export CSF_OPT_CMPL="${CSF_OPT_CMPL} -DMACOSX_USE_GLX"
|
||||
fi
|
||||
if [ "$MACOSX_USE_GLX" == "true" ]; then export CSF_OPT_CMPL="${CSF_OPT_CMPL} -DMACOSX_USE_GLX"; fi
|
||||
|
||||
# To split string into array
|
||||
aDelimBack=$IFS
|
||||
@@ -217,8 +209,6 @@ export CSF_PluginDefaults="${CASROOT}/src/StdResource"
|
||||
export CSF_XCAFDefaults="${CASROOT}/src/StdResource"
|
||||
export CSF_TObjDefaults="${CASROOT}/src/StdResource"
|
||||
export CSF_StandardLiteDefaults="${CASROOT}/src/StdResource"
|
||||
export CSF_UnitsLexicon="${CASROOT}/src/UnitsAPI/Lexi_Expr.dat"
|
||||
export CSF_UnitsDefinition="${CASROOT}/src/UnitsAPI/Units.dat"
|
||||
export CSF_IGESDefaults="${CASROOT}/src/XSTEPResource"
|
||||
export CSF_STEPDefaults="${CASROOT}/src/XSTEPResource"
|
||||
export CSF_XmlOcafResource="${CASROOT}/src/XmlOcafResource"
|
||||
|
@@ -114,8 +114,6 @@ export CSF_PluginDefaults="${CSF_OCCTResourcePath}/StdResource"
|
||||
export CSF_XCAFDefaults="${CSF_OCCTResourcePath}/StdResource"
|
||||
export CSF_TObjDefaults="${CSF_OCCTResourcePath}/StdResource"
|
||||
export CSF_StandardLiteDefaults="${CSF_OCCTResourcePath}/StdResource"
|
||||
export CSF_UnitsLexicon="${CSF_OCCTResourcePath}/UnitsAPI/Lexi_Expr.dat"
|
||||
export CSF_UnitsDefinition="${CSF_OCCTResourcePath}/UnitsAPI/Units.dat"
|
||||
export CSF_IGESDefaults="${CSF_OCCTResourcePath}/XSTEPResource"
|
||||
export CSF_STEPDefaults="${CSF_OCCTResourcePath}/XSTEPResource"
|
||||
export CSF_XmlOcafResource="${CSF_OCCTResourcePath}/XmlOcafResource"
|
||||
|
@@ -1 +1 @@
|
||||
#include "@OCCT_HEADER_FILE@"
|
||||
@OCCT_HEADER_FILE_CONTENT@
|
||||
|
@@ -28,6 +28,8 @@ if /I "%VCVER%" == "vc8" (
|
||||
set "VisualStudioExpressName=WDExpress"
|
||||
) else if /I "%VCVER%" == "vc14" (
|
||||
set "DevEnvDir=%VS140COMNTOOLS%..\IDE"
|
||||
) else if /I "%VCVER%" == "vc14-uwp" (
|
||||
set "DevEnvDir=%VS140COMNTOOLS%..\IDE"
|
||||
) else (
|
||||
echo Error: wrong VS identifier
|
||||
exit /B
|
||||
|
@@ -20,23 +20,28 @@
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>__PROJECT_GUID__</ProjectGuid>
|
||||
__UWP_PROPERTIES__
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<PlatformToolset>__VCVEREXT__</PlatformToolset>
|
||||
<CharacterSet>__VCCHARSET__</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<PlatformToolset>__VCVEREXT__</PlatformToolset>
|
||||
<CharacterSet>__VCCHARSET__</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<PlatformToolset>__VCVEREXT__</PlatformToolset>
|
||||
<CharacterSet>__VCCHARSET__</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<PlatformToolset>__VCVEREXT__</PlatformToolset>
|
||||
<CharacterSet>__VCCHARSET__</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
@@ -96,14 +101,16 @@
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<DisableSpecificWarnings>%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
||||
<FloatingPointModel>Precise</FloatingPointModel>__VCMPL32__
|
||||
<FloatingPointModel>Precise</FloatingPointModel>
|
||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||
__VCMPL32__
|
||||
</ClCompile>
|
||||
<ResourceCompile>
|
||||
<AdditionalIncludeDirectories>..\..\..\inc;$(CSF_OPT_INC);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>NDEBUG;No_Exception;$(CSF_DEFINES)__TKDEFS__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ResourceCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>__TKDEP__;ws2_32.lib;vfw32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>__TKDEP__;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<OutputFile>.\..\..\..\win32\__VCVER__\bin\__TKNAM__.dll</OutputFile>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<AdditionalLibraryDirectories>..\..\..\win32\__VCVER__\lib;$(CSF_OPT_LIB32);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
@@ -111,6 +118,7 @@
|
||||
<ProgramDatabaseFile>.\..\..\..\win32\__VCVER__\bin\__TKNAM__.pdb</ProgramDatabaseFile>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<ImportLibrary>..\..\..\win32\__VCVER__\lib\__TKNAM__.lib</ImportLibrary>
|
||||
__UWP_GENERATE_METADATA__
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
@@ -141,14 +149,16 @@
|
||||
<CompileAs>Default</CompileAs>
|
||||
<DisableSpecificWarnings>%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<FloatingPointModel>Precise</FloatingPointModel>__VCMPL32__
|
||||
<FloatingPointModel>Precise</FloatingPointModel>
|
||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||
__VCMPL32__
|
||||
</ClCompile>
|
||||
<ResourceCompile>
|
||||
<AdditionalIncludeDirectories>..\..\..\inc;$(CSF_OPT_INC);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>_DEBUG;$(CSF_DEFINES)__TKDEFS__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ResourceCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>__TKDEP__;ws2_32.lib;vfw32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>__TKDEP__;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<OutputFile>.\..\..\..\win32\__VCVER__\bind\__TKNAM__.dll</OutputFile>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<AdditionalLibraryDirectories>..\..\..\win32\__VCVER__\libd;$(CSF_OPT_LIB32D);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
@@ -156,6 +166,7 @@
|
||||
<ProgramDatabaseFile>..\..\..\win32\__VCVER__\bind\__TKNAM__.pdb</ProgramDatabaseFile>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<ImportLibrary>..\..\..\win32\__VCVER__\libd\__TKNAM__.lib</ImportLibrary>
|
||||
__UWP_GENERATE_METADATA__
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
@@ -185,14 +196,16 @@
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<DisableSpecificWarnings>%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
||||
<FloatingPointModel>Precise</FloatingPointModel>__VCMPL64__
|
||||
<FloatingPointModel>Precise</FloatingPointModel>
|
||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||
__VCMPL64__
|
||||
</ClCompile>
|
||||
<ResourceCompile>
|
||||
<AdditionalIncludeDirectories>..\..\..\inc;$(CSF_OPT_INC);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>NDEBUG;No_Exception;$(CSF_DEFINES)__TKDEFS__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ResourceCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>__TKDEP__;ws2_32.lib;vfw32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>__TKDEP__;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<OutputFile>.\..\..\..\win64\__VCVER__\bin\__TKNAM__.dll</OutputFile>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<AdditionalLibraryDirectories>..\..\..\win64\__VCVER__\lib;$(CSF_OPT_LIB64);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
@@ -200,6 +213,7 @@
|
||||
<ProgramDatabaseFile>.\..\..\..\win64\__VCVER__\bin\__TKNAM__.pdb</ProgramDatabaseFile>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<ImportLibrary>..\..\..\win64\__VCVER__\lib\__TKNAM__.lib</ImportLibrary>
|
||||
__UWP_GENERATE_METADATA__
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
@@ -230,14 +244,16 @@
|
||||
<CompileAs>Default</CompileAs>
|
||||
<DisableSpecificWarnings>%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<FloatingPointModel>Precise</FloatingPointModel>__VCMPL64__
|
||||
<FloatingPointModel>Precise</FloatingPointModel>
|
||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||
__VCMPL64__
|
||||
</ClCompile>
|
||||
<ResourceCompile>
|
||||
<AdditionalIncludeDirectories>..\..\..\inc;$(CSF_OPT_INC);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>_DEBUG;$(CSF_DEFINES)__TKDEFS__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ResourceCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>__TKDEP__;ws2_32.lib;vfw32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>__TKDEP__;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<OutputFile>.\..\..\..\win64\__VCVER__\bind\__TKNAM__.dll</OutputFile>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<AdditionalLibraryDirectories>..\..\..\win64\__VCVER__\libd;$(CSF_OPT_LIB64D);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
@@ -245,6 +261,7 @@
|
||||
<ProgramDatabaseFile>..\..\..\win64\__VCVER__\bind\__TKNAM__.pdb</ProgramDatabaseFile>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<ImportLibrary>..\..\..\win64\__VCVER__\libd\__TKNAM__.lib</ImportLibrary>
|
||||
__UWP_GENERATE_METADATA__
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
|
@@ -36,7 +36,7 @@
|
||||
Name="VCCustomBuildTool"/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="__TKDEP__ opengl32.lib ws2_32.lib vfw32.lib odbc32.lib odbccp32.lib"
|
||||
AdditionalDependencies="__TKDEP__ opengl32.lib ws2_32.lib odbc32.lib odbccp32.lib"
|
||||
OutputFile=".\..\..\..\win32\vc7\bin\__TKNAM__.dll"
|
||||
LinkIncremental="1"
|
||||
SuppressStartupBanner="TRUE"
|
||||
@@ -105,7 +105,7 @@
|
||||
Name="VCCustomBuildTool"/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="__TKDEP__ opengl32.lib ws2_32.lib vfw32.lib odbc32.lib odbccp32.lib"
|
||||
AdditionalDependencies="__TKDEP__ opengl32.lib ws2_32.lib odbc32.lib odbccp32.lib"
|
||||
OutputFile=".\..\..\..\win32\vc7\bind\__TKNAM__.dll"
|
||||
LinkIncremental="1"
|
||||
SuppressStartupBanner="TRUE"
|
||||
|
@@ -78,7 +78,7 @@
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="__TKDEP__ opengl32.lib ws2_32.lib vfw32.lib odbc32.lib odbccp32.lib"
|
||||
AdditionalDependencies="__TKDEP__ opengl32.lib ws2_32.lib odbc32.lib odbccp32.lib"
|
||||
OutputFile=".\..\..\..\win32\vc8\bin\__TKNAM__.dll"
|
||||
LinkIncremental="1"
|
||||
SuppressStartupBanner="true"
|
||||
@@ -178,7 +178,7 @@
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="__TKDEP__ opengl32.lib ws2_32.lib vfw32.lib odbc32.lib odbccp32.lib"
|
||||
AdditionalDependencies="__TKDEP__ opengl32.lib ws2_32.lib odbc32.lib odbccp32.lib"
|
||||
OutputFile=".\..\..\..\win32\vc8\bind\__TKNAM__.dll"
|
||||
LinkIncremental="1"
|
||||
SuppressStartupBanner="true"
|
||||
@@ -276,7 +276,7 @@
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="__TKDEP__ opengl32.lib ws2_32.lib vfw32.lib odbc32.lib odbccp32.lib"
|
||||
AdditionalDependencies="__TKDEP__ opengl32.lib ws2_32.lib odbc32.lib odbccp32.lib"
|
||||
OutputFile=".\..\..\..\win64\vc8\bin\__TKNAM__.dll"
|
||||
LinkIncremental="1"
|
||||
SuppressStartupBanner="true"
|
||||
@@ -376,7 +376,7 @@
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="__TKDEP__ opengl32.lib ws2_32.lib vfw32.lib odbc32.lib odbccp32.lib"
|
||||
AdditionalDependencies="__TKDEP__ opengl32.lib ws2_32.lib odbc32.lib odbccp32.lib"
|
||||
OutputFile=".\..\..\..\win64\vc8\bind\__TKNAM__.dll"
|
||||
LinkIncremental="1"
|
||||
SuppressStartupBanner="true"
|
||||
|
@@ -79,7 +79,7 @@
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="__TKDEP__ ws2_32.lib vfw32.lib"
|
||||
AdditionalDependencies="__TKDEP__ ws2_32.lib"
|
||||
OutputFile=".\..\..\..\win32\vc9\bin\__TKNAM__.dll"
|
||||
LinkIncremental="1"
|
||||
SuppressStartupBanner="true"
|
||||
@@ -178,7 +178,7 @@
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="__TKDEP__ ws2_32.lib vfw32.lib"
|
||||
AdditionalDependencies="__TKDEP__ ws2_32.lib"
|
||||
OutputFile=".\..\..\..\win32\vc9\bind\__TKNAM__.dll"
|
||||
LinkIncremental="1"
|
||||
SuppressStartupBanner="true"
|
||||
@@ -272,7 +272,7 @@
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="__TKDEP__ ws2_32.lib vfw32.lib"
|
||||
AdditionalDependencies="__TKDEP__ ws2_32.lib"
|
||||
OutputFile=".\..\..\..\win64\vc9\bin\__TKNAM__.dll"
|
||||
LinkIncremental="1"
|
||||
SuppressStartupBanner="true"
|
||||
@@ -368,7 +368,7 @@
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="__TKDEP__ ws2_32.lib vfw32.lib"
|
||||
AdditionalDependencies="__TKDEP__ ws2_32.lib"
|
||||
OutputFile=".\..\..\..\win64\vc9\bind\__TKNAM__.dll"
|
||||
LinkIncremental="1"
|
||||
SuppressStartupBanner="true"
|
||||
|
@@ -2,6 +2,7 @@
|
||||
BRepExtrema_OverlappedSubShapes BRepExtrema_MapOfIntegerPackedMapOfInteger
|
||||
ShapeConstruct_CompBezierCurves2dToBSplineCurve2d Convert_CompBezierCurves2dToBSplineCurve2d
|
||||
ShapeConstruct_CompBezierCurves2dToBSplineCurve Convert_CompBezierCurves2dToBSplineCurve
|
||||
Image_PixMap::Img Image_Format_
|
||||
|
||||
[tcollection]
|
||||
AdvApp2Var_SequenceOfNode
|
||||
@@ -800,13 +801,6 @@ TDF_LabelSequence
|
||||
TDocStd_LabelIDMapDataMap
|
||||
TDocStd_SequenceOfApplicationDelta
|
||||
TDocStd_SequenceOfDocument
|
||||
TestTopOpeDraw_Array1OfDrawableMesure
|
||||
TestTopOpeDraw_Array1OfDrawableP3D
|
||||
TestTopOpeDraw_HArray1OfDrawableMesure
|
||||
TestTopOpeDraw_HArray1OfDrawableP3D
|
||||
TestTopOpeDraw_ListOfPnt2d
|
||||
TestTopOpeTools_Array1OfMesure
|
||||
TestTopOpeTools_HArray1OfMesure
|
||||
TFunction_Array1OfDataMapOfGUIDDriver
|
||||
TFunction_DataMapOfGUIDDriver
|
||||
TFunction_DataMapOfLabelListOfLabel
|
||||
|
0
samples/mfc/standard/04_Viewer3d/Data/carrelage1.gif → data/images/carrelage1.gif
Executable file → Normal file
Before Width: | Height: | Size: 106 KiB After Width: | Height: | Size: 106 KiB |
0
samples/mfc/standard/04_Viewer3d/Data/chataignier.gif → data/images/chataignier.gif
Executable file → Normal file
Before Width: | Height: | Size: 6.0 KiB After Width: | Height: | Size: 6.0 KiB |
0
samples/mfc/standard/04_Viewer3d/Data/cookerplate.gif → data/images/cookerplate.gif
Executable file → Normal file
Before Width: | Height: | Size: 8.6 KiB After Width: | Height: | Size: 8.6 KiB |
0
samples/mfc/standard/04_Viewer3d/Data/plancher.gif → data/images/plancher.gif
Executable file → Normal file
Before Width: | Height: | Size: 188 KiB After Width: | Height: | Size: 188 KiB |
0
samples/mfc/standard/04_Viewer3d/Data/terrain.gif → data/images/terrain.gif
Executable file → Normal file
Before Width: | Height: | Size: 222 KiB After Width: | Height: | Size: 222 KiB |
0
samples/mfc/standard/04_Viewer3d/Data/wallpaper.gif → data/images/wallpaper.gif
Executable file → Normal file
Before Width: | Height: | Size: 6.5 KiB After Width: | Height: | Size: 6.5 KiB |
1131
data/occ/Ball.brep
Normal file
0
samples/mfc/standard/09_Animation/data/Box.brep → data/occ/Box.brep
Executable file → Normal file
0
samples/mfc/standard/09_Animation/data/MAT.brep → data/occ/MAT.brep
Executable file → Normal file
0
samples/mfc/standard/09_Animation/data/MAT.pnt → data/occ/MAT.pnt
Executable file → Normal file
0
samples/mfc/standard/04_Viewer3d/Data/Kitchen/MODERN_Chair_1.brep → data/occ/MODERN_Chair_1.brep
Executable file → Normal file
0
samples/mfc/standard/04_Viewer3d/Data/Kitchen/MODERN_Cooker_1.brep → data/occ/MODERN_Cooker_1.brep
Executable file → Normal file
0
samples/mfc/standard/04_Viewer3d/Data/Kitchen/MODERN_Cooker_1_opened.brep → data/occ/MODERN_Cooker_1_opened.brep
Executable file → Normal file
0
samples/mfc/standard/04_Viewer3d/Data/Kitchen/MODERN_Exhaust_1.brep → data/occ/MODERN_Exhaust_1.brep
Executable file → Normal file
0
samples/mfc/standard/04_Viewer3d/Data/Kitchen/MODERN_MVCooker_1.brep → data/occ/MODERN_MVCooker_1.brep
Executable file → Normal file
0
samples/mfc/standard/04_Viewer3d/Data/Kitchen/MODERN_MVCooker_1_opened.brep → data/occ/MODERN_MVCooker_1_opened.brep
Executable file → Normal file
0
samples/mfc/standard/04_Viewer3d/Data/Kitchen/MODERN_Refrigerator_1.brep → data/occ/MODERN_Refrigerator_1.brep
Executable file → Normal file
0
samples/mfc/standard/04_Viewer3d/Data/Kitchen/MODERN_Refrigerator_1_opened.brep → data/occ/MODERN_Refrigerator_1_opened.brep
Executable file → Normal file
0
samples/mfc/standard/04_Viewer3d/Data/Kitchen/MODERN_Sink_1.brep → data/occ/MODERN_Sink_1.brep
Executable file → Normal file
0
samples/mfc/standard/04_Viewer3d/Data/Kitchen/MODERN_Sink_1_opened.brep → data/occ/MODERN_Sink_1_opened.brep
Executable file → Normal file
0
samples/mfc/standard/04_Viewer3d/Data/Kitchen/MODERN_Table_1.brep → data/occ/MODERN_Table_1.brep
Executable file → Normal file
0
samples/mfc/standard/Data/Pump_Nut.brep → data/occ/Pump_Nut.brep
Executable file → Normal file
0
samples/mfc/standard/Data/Pump_TopCover.brep → data/occ/Pump_TopCover.brep
Executable file → Normal file
0
samples/mfc/standard/04_Viewer3d/Data/Kitchen/Room.brep → data/occ/Room.brep
Executable file → Normal file
0
samples/mfc/standard/01_Geometry/Data/SurfaceFromPoints/sol1.dat → data/occ/SurfaceFromPoints/sol1.dat
Executable file → Normal file
0
samples/mfc/standard/01_Geometry/Data/SurfaceFromPoints/sol2.dat → data/occ/SurfaceFromPoints/sol2.dat
Executable file → Normal file
0
samples/mfc/standard/09_Animation/data/asahi.brep → data/occ/asahi.brep
Executable file → Normal file
0
samples/mfc/standard/04_Viewer3d/Data/bottle.brep → data/occ/bottle.brep
Executable file → Normal file
0
samples/mfc/standard/03_Viewer2d/data/Face.BRep → data/occ/face2.brep
Executable file → Normal file
0
samples/mfc/standard/01_Geometry/Data/shell1.brep → data/occ/shell1.brep
Executable file → Normal file
0
samples/mfc/standard/04_Viewer3d/Data/terrain.brep → data/occ/terrain.brep
Executable file → Normal file
0
samples/mfc/standard/Data/wedge_ok.brep → data/occ/wedge_ok.brep
Executable file → Normal file
@@ -35,7 +35,7 @@ endif()
|
||||
# configuration file for doxygen
|
||||
set (OCCT_CONFIG_FOR_DOXYGEN "${OCCT_GENERATED_DOC_DIR}/occt.cfg")
|
||||
|
||||
set (3RDPARTY_MATHJAX_RELATIVE_PATH "http://cdn.mathjax.org/mathjax/latest")
|
||||
set (3RDPARTY_MATHJAX_RELATIVE_PATH "https://cdn.mathjax.org/mathjax/latest")
|
||||
|
||||
configure_file ("${OCCT_OVERVIEW_RESOURCE_DIR}/occt_ug_html.doxyfile" "${OCCT_CONFIG_FOR_DOXYGEN}" COPYONLY)
|
||||
|
||||
@@ -92,11 +92,22 @@ file (APPEND ${OCCT_CONFIG_FOR_DOXYGEN} "\nMATHJAX_RELPATH = ${3RDPARTY_M
|
||||
# Copy index file to provide fast access to HTML documentation
|
||||
file(COPY "${OCCT_OVERVIEW_RESOURCE_DIR}/index.html" DESTINATION "${OCCT_GENERATED_OVERVIEW_DIR}")
|
||||
|
||||
add_custom_target (${PROJECT_NAME}
|
||||
COMMAND ${3RDPARTY_DOXYGEN_EXECUTABLE} ${OCCT_CONFIG_FOR_DOXYGEN}
|
||||
WORKING_DIRECTORY ${OCCT_GENERATED_DOC_DIR}
|
||||
COMMENT "Generating OCCT overview documentation with Doxygen"
|
||||
SOURCES ${OCCT_ARTICLES_ABSPATH}
|
||||
VERBATIM)
|
||||
# get relative paths to documentation source files
|
||||
file (GLOB_RECURSE OCCT_OVERVIEW_FILES "${OCCT_OVERVIEW_DIR}/*")
|
||||
|
||||
add_custom_command(OUTPUT "${OCCT_GENERATED_DOC_DIR}/overview/html/occt_logo.png"
|
||||
COMMAND ${3RDPARTY_DOXYGEN_EXECUTABLE} ${OCCT_CONFIG_FOR_DOXYGEN}
|
||||
DEPENDS ${OCCT_OVERVIEW_FILES}
|
||||
WORKING_DIRECTORY ${OCCT_GENERATED_DOC_DIR}
|
||||
COMMENT "Generating OCCT overview documentation with Doxygen"
|
||||
VERBATIM
|
||||
)
|
||||
|
||||
add_custom_target(${PROJECT_NAME} ALL
|
||||
DEPENDS "${OCCT_GENERATED_DOC_DIR}/overview/html/occt_logo.png" ${OCCT_OVERVIEW_FILES}
|
||||
SOURCES ${OCCT_ARTICLES_ABSPATH}
|
||||
VERBATIM
|
||||
)
|
||||
|
||||
# Create Documentation folder in solution view
|
||||
set_property (TARGET ${PROJECT_NAME} PROPERTY FOLDER "Documentation")
|
||||
|
@@ -10,32 +10,40 @@ The steps on Windows and Ubuntu are similar. There is the only one difference: m
|
||||
on Windows and native GNU make on Ubuntu.
|
||||
|
||||
Required tools (download and install if it is required):
|
||||
- CMake v3.0+ http://www.cmake.org/cmake/resources/software.html
|
||||
- Cross-compilation toolchain for CMake https://github.com/taka-no-me/android-cmake
|
||||
- CMake v3.7+ http://www.cmake.org/cmake/resources/software.html
|
||||
- Android NDK rev.10+ https://developer.android.com/tools/sdk/ndk/index.html
|
||||
- GNU Make: MinGW v4.82+ for Windows (http://sourceforge.net/projects/mingw/files/), GNU Make 4.0 for Ubuntu.
|
||||
|
||||
## Generation of makefiles
|
||||
|
||||
## Prerequisites
|
||||
|
||||
In toolchain file <i>$CASROOT/adm/templates/android.toolchain.config.cmake</i>:
|
||||
|
||||
- Set CMAKE_ANDROID_NDK variable equal to your Android NDK path.
|
||||
- Set CMAKE_ANDROID_STL_TYPE variable to specify which C++ standard library to use.
|
||||
|
||||
The default value of CMAKE_ANDROID_STL_TYPE is <i>gnustl_shared</i> (GNU libstdc++ Shared)
|
||||
|
||||
@figure{/dev_guides/building/android/images/android_image001.png}
|
||||
|
||||
## Generation of makefiles using CMake GUI tool
|
||||
Run GUI tool provided by CMake: cmake-gui
|
||||
|
||||
### Tools configuration
|
||||
- Specify the root folder of OCCT (<i>$CASROOT</i>, which contains *CMakelists.txt* file) by clicking **Browse Source**.
|
||||
- Specify the location (build folder) for Cmake generated project files by clicking **Browse Build**.
|
||||
|
||||
@figure{/dev_guides/building/android/images/android_image001.png}
|
||||
@figure{/dev_guides/building/android/images/android_image002.png}
|
||||
|
||||
Click **Configure** button. It opens the window with a drop-down list of generators supported by CMake project.
|
||||
|
||||
Select "MinGW MakeFiles" item from the list
|
||||
Select "MinGW Makefiles" item from the list
|
||||
- Choose "Specify toolchain file for cross-compiling"
|
||||
- Click "Next"
|
||||
@figure{/dev_guides/building/android/images/android_image002.png}
|
||||
|
||||
- Specify a toolchain file at the next dialog by android.toolchain.cmake . It is contained by cross-compilation toolchain for CMake
|
||||
- Click "Finish"
|
||||
@figure{/dev_guides/building/android/images/android_image003.png}
|
||||
|
||||
If ANDROID_NDK environment variable is not defined in current OS, add cache entry ANDROID_NDK (entry type is PATH) -- path to the NDK folder ("Add Entry" button)
|
||||
- Specify a toolchain file at the next dialog by <i>android.toolchain.config.cmake</i> . It is contained by cross-compilation toolchain for CMake
|
||||
- Click "Finish"
|
||||
@figure{/dev_guides/building/android/images/android_image004.png}
|
||||
|
||||
If on Windows the message is appeared: "CMake Error: CMake was unable to find a build program corresponding to "MinGW Makefiles"
|
||||
@@ -46,18 +54,19 @@ specify **CMAKE_MAKE_PROGRAM** to mingw32-make executable.
|
||||
### OCCT Configuration
|
||||
|
||||
How to configure OCCT, see "OCCT Configuration" section of @ref occt_dev_guides__building_cmake "Building with CMake"
|
||||
taking into account the specific configuration variables for android:
|
||||
- ANDROID_ABI = armeabi-v7a
|
||||
- ANDROID_NATIVE_API_LEVEL = 15
|
||||
- ANDROID_NDK_LAYOUT is equal to CMAKE_BUILD_TYPE variable
|
||||
- **BUILD_MODULE_Draw = OFF**
|
||||
|
||||
@figure{/dev_guides/building/android/images/android_image006.png}
|
||||
|
||||
### Generation of makefiles
|
||||
|
||||
Click **Generate** button and wait until the generation process is finished.
|
||||
Then makefiles will appear in the build folder (e.g. <i> D:/tmp/occt-android </i>).
|
||||
Then makefiles will appear in the build folder (e.g. <i> D:/occt/build-android </i>).
|
||||
|
||||
## Generation of makefiles using CMake from the command line
|
||||
|
||||
Alternatively one may specify the values without a toolchain file:
|
||||
|
||||
> cmake -G "MinGW Makefiles" -DCMAKE_SYSTEM_NAME=Android -DCMAKE_ANDROID_NDK=D:/DevTools/android-ndk-r13b -DCMAKE_ANDROID_STL_TYPE=gnustl_shared -DCMAKE_SYSTEM_VERSION=15 -DCMAKE_ANDROID_ARCH_ABI=armeabi-v7a -DCMAKE_MAKE_PROGRAM=D:/DevTools/MinGW/bin/mingw32-make.exe -D3RDPARTY_DIR=D:/occt-3rdparty D:/occt
|
||||
|
||||
@figure{/dev_guides/building/android/images/android_image006.png}
|
||||
|
||||
## Building makefiles of OCCT
|
||||
|
||||
|
Before Width: | Height: | Size: 57 KiB After Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 46 KiB After Width: | Height: | Size: 7.0 KiB |
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 4.1 KiB |
Before Width: | Height: | Size: 66 KiB After Width: | Height: | Size: 31 KiB |
Before Width: | Height: | Size: 80 KiB After Width: | Height: | Size: 98 KiB |
@@ -5,26 +5,26 @@ Building with CMake {#occt_dev_guides__building_cmake}
|
||||
|
||||
@section build_cmake_intro General
|
||||
|
||||
This article describes the **CMake**-based build process which is now suggested as a standard way to produce the binaries of Open CASCADE Technology from sources. *OCCT requires CMake version 2.8.12 or later*.
|
||||
This article describes the **CMake**-based build process, which is now suggested as a standard way to produce the binaries of Open CASCADE Technology from sources. *OCCT requires CMake version 2.8.12 or later*.
|
||||
|
||||
@note Comparing to the previous (6.x) releases of Open CASCADE Technology, OCCT 7.0 comes with a complete set of CMake scripts and projects, so that there is no need to use WOK anymore. Moreover, CMake gives you a powerful configuration tool which allows to control many aspects of OCCT deployment. At the same time this tool is quite intuitive which is a significant advantage over the legacy WOK utilities.
|
||||
@note Compared to the previous (6.x) releases of Open CASCADE Technology, OCCT 7.x has a complete set of CMake scripts and projects, so that there is no need to use WOK anymore. Moreover, CMake gives you a powerful configuration tool, which allows to control many aspects of OCCT deployment. At the same time this tool is quite intuitive, which is a significant advantage over the legacy WOK utilities.
|
||||
|
||||
Here we describe the build procedure on example of Windows platform with Visual Studio 2010.
|
||||
Here we describe the build procedure on the example of Windows platform with Visual Studio 2010.
|
||||
However, CMake is cross-platform and can be used to build OCCT on Linux and OS X in essentially the same way.
|
||||
|
||||
@note Before you start, make sure to have installed all the 3-rd party products that you are going to use with OCCT; see @ref occt_dev_guides__building.
|
||||
@note Before you start, make sure to have installed all 3-rd party products that you are going to use with OCCT; see @ref occt_dev_guides__building.
|
||||
|
||||
@section build_cmake_start Start CMake
|
||||
|
||||
CMake is a tool that generates the actual project files for the selected target build system (e.g. Unix makefiles) or IDE (e.g. Visual Studio 2010).
|
||||
|
||||
For unexpericnced users we recommend to start with *cmake-gui* -- cross-platform GUI tool provided by CMake on Windows, Mac and Linux.
|
||||
A command-line alternative, *ccmake* also can be used.
|
||||
For unexperienced users we recommend to start with *cmake-gui* -- a cross-platform GUI tool provided by CMake on Windows, Mac and Linux.
|
||||
A command-line alternative, *ccmake* can also be used.
|
||||
|
||||
CMake deals with three directories: source, build or binary and install.
|
||||
CMake deals with three directories: source, build or binary and installation.
|
||||
|
||||
* The source directory is where the sources of OCCT are located in your filesystem
|
||||
* The build or binary directory is where all the files created during CMake configuration and generation process will be located. The mentioned process will be described below.
|
||||
* The source directory is where the sources of OCCT are located in your file system;
|
||||
* The build or binary directory is where all files created during CMake configuration and generation process will be located. The mentioned process will be described below.
|
||||
* The installation directory is where binaries will be installed after building the *INSTALL* project that is created by CMake generation process, along with header files and resources required for OCCT use in applications.
|
||||
|
||||
The good practice is not to use the source directory as a build one.
|
||||
@@ -48,9 +48,9 @@ If the command-line tool is used, run the tool from the build directory with a s
|
||||
|
||||
Press *c* to configure.
|
||||
|
||||
All required actions in the configuration process will be described with using the GUI tool below.
|
||||
All actions required in the configuration process with the GUI tool will be described below.
|
||||
|
||||
If the gui-tool is used, run the tool without additional arguments and after that specify the source directory by clicking **Browse Source** and the build (binary) one by clicking **Browse Build**.
|
||||
If the GUI tool is used, run this tool without additional arguments and after that specify the source directory by clicking **Browse Source** and the build (binary) one by clicking **Browse Build**.
|
||||
|
||||
@figure{/dev_guides/building/cmake/images/cmake_image001.png}
|
||||
|
||||
@@ -60,29 +60,31 @@ Once the source and build directories are selected, "Configure" button should be
|
||||
|
||||
@figure{/dev_guides/building/cmake/images/cmake_image002.png}
|
||||
|
||||
To build OCCT with using Universal Windows Platform (UWP) specify path to toolchain file for cross-compiling <i>d:/occt/adm/templates/uwp.toolchain.config.cmake</i>.
|
||||
To build OCCT for **Universal Windows Platform (UWP)** specify the path to toolchain file for cross-compiling <i>d:/occt/adm/templates/uwp.toolchain.config.cmake</i>.
|
||||
|
||||
**Note**: Universal Windows Platform (UWP) is supported only on "Visual Studio 14 2015". File <i>d:/occt/samples/xaml/ReadMe.md</i> desribes building procedure of XAML (UWP) sample.
|
||||
Alternatively, if you are using CMake from the command line add options -DCMAKE_SYSTEM_NAME=WindowsStore -DCMAKE_SYSTEM_VERSION=10.0 .
|
||||
|
||||
Once "Finish" button is pressed, the first pass of the configuration process is executed. At the end of the process, CMake outputs the list of environment variables which have to be properly specified for successful configuration.
|
||||
**Note**: Universal Windows Platform (UWP) is supported only on "Visual Studio 14 2015". File <i>d:/occt/samples/xaml/ReadMe.md</i> describes the building procedure of XAML (UWP) sample.
|
||||
|
||||
Once "Finish" button is pressed, the first pass of the configuration process is executed. At the end of the process, CMake outputs the list of environment variables, which have to be properly specified for successful configuration.
|
||||
|
||||
@figure{/dev_guides/building/cmake/images/cmake_image003.png}
|
||||
|
||||
The error message provides an information about these variables. This message will appear after each pass of the process until all required variables are specified correctly.
|
||||
The error message provides some information about these variables. This message will appear after each pass of the process until all required variables are specified correctly.
|
||||
|
||||
The change of the state of some variables can lead to the appearance of new variables. The new variables appeared after the pass of the configuration process is notified with red color by CMake GUI tool.
|
||||
The change of the state of some variables can lead to the appearance of new variables. The new variables appeared after the pass of the configuration process are highlighted with red color by CMake GUI tool.
|
||||
|
||||
Note: There is "grouped" option which groups variables with a common prefix.
|
||||
Note: There is "grouped" option, which groups variables with a common prefix.
|
||||
|
||||
The following table enumerates the full list of environment variables used at configuration stage:
|
||||
The following table gives the full list of environment variables used at the configuration stage:
|
||||
|
||||
| Variable | Type | Purpose |
|
||||
|----------|------|---------|
|
||||
| CMAKE_BUILD_TYPE | String | Specifies the build type on single-configuration generators (sush as make). Possible values are Debug, Release and RelWithDebInfo |
|
||||
| USE_FREEIMAGE | Boolean flag | Indicates whether Freeimage product should be used in OCCT visualization module for support of popular graphics image formats (PNG, BMP etc) |
|
||||
| USE_GL2PS | Boolean flag | Indicates whether GL2PS product should be used in OCCT visualization module for support of vector image formats (PS, EPS etc) |
|
||||
| CMAKE_BUILD_TYPE | String | Specifies the build type on single-configuration generators (such as make). Possible values are Debug, Release and RelWithDebInfo |
|
||||
| USE_FREEIMAGE | Boolean flag | Indicates whether FreeImage product should be used in OCCT visualization module for support of popular graphics image formats (PNG, BMP, etc.) |
|
||||
| USE_GL2PS | Boolean flag | Indicates whether GL2PS product should be used in OCCT visualization module for support of vector image formats (PS, EPS, etc.) |
|
||||
| USE_TBB | Boolean flag | Indicates whether TBB 3rd party is used or not. TBB stands for Threading Building Blocks, the technology of Intel Corp, which comes with different mechanisms and patterns for injecting parallelism into your application. OCCT remains parallel even without TBB product |
|
||||
| USE_VTK | Boolean flag | Indicates whether VTK 3rd party is used or not. VTK stands for Visualization ToolKit, the technology of Kitware Inc intended for general-purpose scientific visualization. OCCT comes with a bridge between CAD data representation and VTK by means of its dedicated VIS component (VTK Integration Services). You may skip this 3rd party unless you are planning to use VTK visualization for OCCT geometry. The official documentation @ref occt_user_guides__vis for the details on VIS |
|
||||
| USE_VTK | Boolean flag | Indicates whether VTK 3rd party is used or not. VTK stands for Visualization ToolKit, the technology of Kitware Inc intended for general-purpose scientific visualization. OCCT comes with a bridge between CAD data representation and VTK by means of its dedicated VIS component (VTK Integration Services). You may skip this 3rd party unless you are planning to use VTK visualization for OCCT geometry. See the official documentation @ref occt_user_guides__vis for the details on VIS |
|
||||
| 3RDPARTY_DIR | Path | Defines the root directory where all required 3rd party products will be searched. Once you define this path it is very convenient to click "Configure" button in order to let CMake automatically detect all necessary products|
|
||||
| 3RDPARTY_FREETYPE_* | Path | Path to Freetype binaries |
|
||||
| 3RDPARTY_TCL_* 3RDPARTY_TK_* | Path | Path to Tcl/Tk binaries |
|
||||
@@ -91,20 +93,22 @@ The following table enumerates the full list of environment variables used at co
|
||||
| 3RDPARTY_TBB* | Path | Path to TBB binaries |
|
||||
| 3RDPARTY_VTK_* | Path | Path to VTK binaries |
|
||||
| BUILD_MODULE_<MODULE>| Boolean flag | Indicates whether the corresponding OCCT module should be built or not. It should be noted that some toolkits of a module can be built even if this module is not checked (this happens if some other modules depend on these toolkits). The main modules and their descriptions can be found in @ref user_guides |
|
||||
| BUILD_LIBRARY_TYPE | String | Specifies the type of library to be created. "Shared" libraries are linked dynamically and loaded at runtime. "Static" libraries are archives of object files for use when linking other targets |
|
||||
| BUILD_LIBRARY_TYPE | String | Specifies the type of library to be created. "Shared" libraries are linked dynamically and loaded at runtime. "Static" libraries are archives of object files used when linking other targets |
|
||||
| BUILD_ADDITIONAL_TOOLKITS | String | Semicolon-separated individual toolkits to include into build process. If you want to build some particular libraries (toolkits) only, then you may uncheck all modules in the corresponding *BUILD_MODUE_\<MODULE\>* options and provide the list of necessary libraries here. Of course, all dependencies will be resolved automatically |
|
||||
| BUILD_YACCLEX | Boolean flag | Enables Flex/Bison lexical analyzers. OCCT source files relating to STEP reader and ExprIntrp functionality are generated automatically with Flex/Bison. Checking this options leads to automatic search of Flex/Bison binaries and regeneration of the mentioned files |
|
||||
| BUILD_YACCLEX | Boolean flag | Enables Flex/Bison lexical analyzers. OCCT source files relating to STEP reader and ExprIntrp functionality are generated automatically with Flex/Bison. Checking this option leads to automatic search of Flex/Bison binaries and regeneration of the mentioned files |
|
||||
| BUILD_MODULE_MfcSamples | Boolean flag | Indicates whether MFC samples should be built together with OCCT. This option is only relevant to Windows platforms |
|
||||
| BUILD_DOC_Overview | Boolean flag | Indicates whether OCCT overview documentation project should be created together with OCCT. It is not built together with OCCT. Checking this options leads to automatic search of Doxygen binaries. Building of it will be call Doxygen command to generate the documentation in HTML format |
|
||||
| BUILD_DOC_Overview | Boolean flag | Indicates whether OCCT overview documentation project should be created together with OCCT. It is not built together with OCCT. Checking this option leads to automatic search of Doxygen binaries. Its building calls Doxygen command to generate the documentation in HTML format |
|
||||
| BUILD_PATCH | Path | Points to the directory recognized as a "patch" for OCCT. If specified, the files from this directory take precedence over the corresponding native OCCT sources. This way you are able to introduce patches to Open CASCADE Technology not affecting the original source distribution |
|
||||
| BUILD_WITH_DEBUG | Boolean flag | Enables extended messages of many OCCT algorithms, usually printed to cout. These include messages on internal errors and special cases encountered, timing etc |
|
||||
| BUILD_WITH_DEBUG | Boolean flag | Enables extended messages of many OCCT algorithms, usually printed to cout. These include messages on internal errors and special cases encountered, timing, etc. |
|
||||
| BUILD_ENABLE_FPE_SIGNAL_HANDLER | Boolean flag | Enable/Disable the floating point exceptions (FPE) during DRAW execution only. Corresponding environment variable (CSF_FPE) can be changed manually in custom.bat/sh scripts without regeneration by CMake. |
|
||||
| CMAKE_CONFIGURATION_TYPES | String | Semicolon-separated CMake configurations |
|
||||
| INSTALL_DIR | Path | Points to the installation directory. INSTALL_DIR is synonym of CMAKE_INSTALL_PREFIX . User can specify both INSTALL_DIR or CMAKE_INSTALL_PREFIX |
|
||||
| INSTALL_DIR | Path | Points to the installation directory. *INSTALL_DIR* is a synonym of *CMAKE_INSTALL_PREFIX*. The user can specify both *INSTALL_DIR* or *CMAKE_INSTALL_PREFIX* |
|
||||
| INSTALL_DIR_BIN | Path | Relative path to the binaries installation directory (absolute path is ${INSTALL_DIR}/${INSTALL_DIR_BIN}) |
|
||||
| INSTALL_DIR_SCRIPT | Path | Relative path to the scripts installation directory (absolute path is ${INSTALL_DIR}/${INSTALL_DIR_SCRIPT}) |
|
||||
| INSTALL_DIR_LIB | Path | Relative path to the libraries installation directory (absolute path is ${INSTALL_DIR}/${INSTALL_DIR_LIB}) |
|
||||
| INSTALL_DIR_INCLUDE | Path | Relative path to the includes installation directory (absolute path is ${INSTALL_DIR}/${INSTALL_DIR_INCLUDE}) |
|
||||
| INSTALL_DIR_RESOURCE | Path | Relative path to the resources installation directory (absolute path is ${INSTALL_DIR}/${INSTALL_DIR_RESOURCE}) |
|
||||
| INSTALL_DIR_LAYOUT | String | Defines the structure of OCCT files (binaries, resources, headers, etc.) for the install directory. Two variants are predefined: for Windows (standard OCCT layout) and for Unix operating systems (standard Linux layout). If needed, the layout can be customized with INSTALL_DIR_* variables |
|
||||
| INSTALL_DIR_DATA | Path | Relative path to the data files installation directory (absolute path is ${INSTALL_DIR}/${INSTALL_DIR_DATA}) |
|
||||
| INSTALL_DIR_SAMPLES | Path | Relative path to the samples installation directory. Note that only "samples/tcl" folder will be installed. (absolute path is ${INSTALL_DIR}/${INSTALL_DIR_SAMPLES}) |
|
||||
| INSTALL_DIR_TESTS | Path | Relative path to the tests installation directory (absolute path is ${INSTALL_DIR}/${INSTALL_DIR_TESTS}) |
|
||||
@@ -118,7 +122,7 @@ The following table enumerates the full list of environment variables used at co
|
||||
| INSTALL_TEST_CASES | Boolean flag | Indicates whether non-regression OCCT test scripts should be installed into the installation directory |
|
||||
| INSTALL_DOC_Overview | Boolean flag | Indicates whether OCCT overview documentation should be installed into the installation directory |
|
||||
|
||||
**Note:** In those CMake options defining paths only the forward slashes ("/") are acceptable.
|
||||
**Note:** Only the forward slashes ("/") are acceptable in the CMake options defining paths.
|
||||
|
||||
@section build_cmake_3rdparty 3rd party search mechanism
|
||||
|
||||
@@ -126,7 +130,7 @@ If *3RDPARTY_DIR* directory is defined, then required 3rd party binaries are sou
|
||||
|
||||
The procedure expects to find binary and header files of each 3rd party product in its own sub-directory: *bin*, *lib* and *include*.
|
||||
|
||||
The results of the search (achived on the next pass of the configuration process) are recorded in the corresponding variables:
|
||||
The results of the search (achieved on the next pass of the configuration process) are recorded in the corresponding variables:
|
||||
|
||||
* *3RDPARTY_\<PRODUCT\>_DIR* -- path to the 3rdparty directory (with directory name) (e.g. <i>D:/3rdparty/tcltk-86-32</i>)
|
||||
* *3RDPARTY_\<PRODUCT\>_LIBRARY_DIR* -- path to the directory containing a library (e.g. <i>D:/3rdparty/tcltk-86-32/lib</i>).
|
||||
|
@@ -248,7 +248,8 @@ Use of tabulation characters for indentation is disallowed.
|
||||
Punctuation rules follow the rules of the English language.
|
||||
* C/C++ reserved words, commas, colons and semicolons should be followed by a space character if they are not at the end of a line.
|
||||
* There should be no space characters after '(' and before ')'. Closing and opening brackets should be separated by a space character.
|
||||
* For better readability it is also recommended to surround conventional operators by a space character. See the following examples:
|
||||
* For better readability it is also recommended to surround conventional operators by a space character.
|
||||
Examples:
|
||||
|
||||
~~~~~{.cpp}
|
||||
while (true) // NOT: while( true ) ...
|
||||
@@ -261,6 +262,30 @@ for (anIter = 0; anIter < 10; ++anIter) // NOT: for (anIter=0;anIter<10;++anIter
|
||||
}
|
||||
~~~~~
|
||||
|
||||
### Declaration of pointers and references
|
||||
|
||||
In declarations of simple pointers and references put asterisk (*) or ampersand (&) right after the type without extra space.
|
||||
|
||||
Since declaration of several variables with mixed pointer types contrudicts this rule, it should be avoided. Instead, declare each variable independently with fully qualified type.
|
||||
|
||||
Examples:
|
||||
|
||||
~~~~~{.cpp}
|
||||
Standard_Integer *theVariable; // not recommended
|
||||
Standard_Integer * theVariable; // not recommended
|
||||
Standard_Integer* theVariable; // this is OK
|
||||
|
||||
Standard_Integer *&theVariable; // not recommended
|
||||
Standard_Integer *& theVariable; // not recommended
|
||||
Standard_Integer*& theVariable; // this is OK
|
||||
|
||||
Standard_Integer **theVariable; // not recommended
|
||||
Standard_Integer ** theVariable; // not recommended
|
||||
Standard_Integer** theVariable; // this is OK
|
||||
|
||||
Standard_Integer *theA, theB, **theC; // not recommended (declare each variable independently)
|
||||
~~~~~
|
||||
|
||||
### Separate logical blocks
|
||||
|
||||
Separate logical blocks of code with one blank line and comments.
|
||||
@@ -345,6 +370,25 @@ if (!theAlgo.IsNull()) // preferred
|
||||
|
||||
Having all code in the same line is less convenient for debugging.
|
||||
|
||||
### Comparison expressions with constants
|
||||
|
||||
In comparisons, put the variable (in the current context) on the left side and constant on the right side of expression.
|
||||
That is, the so called "Yoda style" is to be avoided.
|
||||
|
||||
~~~~~{.cpp}
|
||||
if (NULL != thePointer) // Yoda style, not recommended
|
||||
if (thePointer != NULL) // OK
|
||||
|
||||
if (34 < anIter) // Yoda style, not recommended
|
||||
if (anIter > 34) // OK
|
||||
|
||||
if (theNbValues >= anIter) // bad style (constant function argument vs. local variable)
|
||||
if (anIter <= theNbValues) // OK
|
||||
|
||||
if (THE_LIMIT == theValue) // bad style (global constant vs. variable)
|
||||
if (theValue == THE_LIMIT) // OK
|
||||
~~~~~
|
||||
|
||||
### Alignment
|
||||
|
||||
Use alignment wherever it enhances the readability. See the following example:
|
||||
|
@@ -715,11 +715,24 @@ Possible options are:
|
||||
* 1 -- outputs only differences;
|
||||
* 2 -- additionally outputs the list of logs and directories present in one of directories only;
|
||||
* 3 -- (by default) additionally outputs progress messages;
|
||||
* <i>-image [filename]</i> - compare images and save the resulting log in specified file (<i>$dir1/diffimage-$dir2.log</i> by default)
|
||||
* <i>-cpu [filename]</i> - compare overall CPU and save the resulting log in specified file (<i>$dir1/diffcpu-$dir2.log</i> by default)
|
||||
* <i>-memory [filename]</i> - compare memory delta and save the resulting log in specified file (<i>$dir1/diffmemory-$dir2.log</i> by default)
|
||||
* <i>-highlight_percent \<value\></i> - highlight considerable (>value in %) deviations of CPU and memory (default value is 5%)
|
||||
|
||||
Example:
|
||||
|
||||
~~~~~
|
||||
Draw[]> testdiff results-CR12345-2012-10-10T08:00 results-master-2012-10-09T21:20
|
||||
Draw[]> testdiff results/CR12345-2012-10-10T08:00 results/master-2012-10-09T21:20
|
||||
~~~~~
|
||||
|
||||
Particular tests can generate additional data that need to be compared by *testdiff* command.
|
||||
For that, for each parameter to be controlled, the test should produce the line containing keyword "COUNTER* followed by arbitrary name of the parameter, then colon and numeric value of the parameter.
|
||||
|
||||
Example of test code:
|
||||
|
||||
~~~~~
|
||||
puts "COUNTER Memory heap usage at step 5: [meminfo h]"
|
||||
~~~~~
|
||||
|
||||
@section testmanual_5 APPENDIX
|
||||
@@ -882,6 +895,7 @@ DRAW module: XSDRAW
|
||||
| fix_shape | fixshape | Shape healing |
|
||||
| fix_gaps | fixwgaps | Fixing gaps between edges on a wire |
|
||||
| same_parameter | sameparameter | Fixing non-sameparameter edges |
|
||||
| same_parameter_locked | sameparameter | Fixing non-sameparameter edges |
|
||||
| fix_face_size | DT_ApplySeq | Removal of small faces |
|
||||
| elementary_to_revolution | DT_ApplySeq | Conversion of elementary surfaces to revolution |
|
||||
| direct_faces | directfaces | Correction of axis of elementary surfaces |
|
||||
@@ -897,6 +911,7 @@ DRAW module: XSDRAW
|
||||
| split_continuity_standard | DT_ShapeDivide | Split surfaces by continuity criterion |
|
||||
| surface_to_revolution_advanced | DT_ShapeConvertRev | Convert elementary surfaces to revolutions, complex cases |
|
||||
| surface_to_revolution_standard | DT_ShapeConvertRev | Convert elementary surfaces to revolutions, simple cases |
|
||||
| update_tolerance_locked | updatetolerance | Update the tolerance of shape so that it satisfy the rule: toler(face)<=toler(edge)<=toler(vertex) |
|
||||
|
||||
@subsubsection testmanual_5_1_11 mesh
|
||||
|
||||
@@ -1294,6 +1309,7 @@ Allowed options are:
|
||||
* <i>-s AREA</i> -- command *sprops*, computes the mass properties of all faces with a surface density of 1;
|
||||
* <i>-v VOLUME</i> -- command *vprops*, computes the mass properties of all solids with a density of 1;
|
||||
* <i>-eps EPSILON</i> -- the epsilon defines relative precision of computation;
|
||||
* <i>-deps DEPSILON</i> -- the epsilon defines relative precision to compare corresponding values;
|
||||
* <i>-equal SHAPE</i> -- compares area, volume and length of input shapes. Puts error if they are not equal;
|
||||
* <i>-notequal SHAPE</i> -- compares area, volume and length of input shapes. Puts error if they are equal.
|
||||
|
||||
|
@@ -58,7 +58,7 @@ for (Standard_Integer aGr = 1; aGr <= aLen; ++aGr)
|
||||
Porting of user applications from an earlier OCCT version to version 6.5.2 requires taking into account the following major changes:
|
||||
* Any code that has been generated by WOK from CDL generic classes *Tcollection_DataMap* and *Tcollection_IndexedDataMap* needs to be regenerated by WOK to take into account the change in the interface of these classes.
|
||||
* The enumerations *CDF_StoreStatus* and *CDF_RetrievableStatus* have been replaced by the enumerations *PCDM_StoreStatus* and *PCDM_ReaderStatus*. Correspondingly, the methods *Open, Save* and *SaveAs* of the class *TDocStd_Application* have changed their return value. Any code, which uses these enumerations, needs to be updated.
|
||||
* *BRepLib_MakeFace* has been modified to accept tolerance value for resolution of degenerated edges. This tolerance parameter has no default value to ensure that the client code takes care of passing a meaningful value, not just *Precision::Confusion*, so some porting overheads are expected.
|
||||
* *BRepLib_MakeFace* has been modified to receive tolerance value for resolution of degenerated edges. This tolerance parameter has no default value to ensure that the client code takes care of passing a meaningful value, not just *Precision::Confusion*, so some porting overheads are expected.
|
||||
* If the callback mechanism in call_togl_redraw function was used in the application code, it is necessary to revise it to take into account the new callback execution and provide a check of reason value of Aspect_GraphicCallbackStruct in callback methods to confirm that the callback code is executed at the right moment. Now the callbacks are executed before redrawing the underlayer, before redrawing the overlayer and at the end of redrawing. The information about the moment when the callback is invoked is provided with the reason value in form of an additional bit flag <i>(OCC_PRE_REDRAW, OCC_PRE_OVERLAY)</i>. The state of OpenGl changed in callback methods will not be restored automatically, which might lead to unwanted behavior in redrawing procedure.
|
||||
* The print method used in the application code might need to be revised to take into account the ability to choose between print algorithms: tile and stretch. The stretch algorithm will be selected by default during porting.
|
||||
* It is recommended to *BRepMesh_DiscretFactory* users, to check *BRepMesh_DiscretFactory::SetDefault()* return value to determine plugin availability / validity. *BRepMesh_DiscretFactory::Discret()* method now returns handle instead of pointer. The code should be updated in the following manner:
|
||||
@@ -82,7 +82,7 @@ Porting of user applications from an earlier OCCT version to version 6.5.3 requi
|
||||
* Method *HashCode()* has been removed from class *Standard_Transient*. It is advisable to use global function <i>HashCode()</i> for Handle objects instead.
|
||||
* Declaration of operators new/delete for classes has become consistent and is encapsulated in macros.
|
||||
* Memory management has been changed to use standard heap <i>(MMGT_OPT=0)</i> and reentrant mode <i>(MMGT_REENTRANT=1)</i> by default.
|
||||
* Map classes in *NCollection* package now accept one more argument defining a hash tool.
|
||||
* Map classes in *NCollection* package now receive one more argument defining a hash tool.
|
||||
|
||||
@section upgrade_654 Upgrade to OCCT 6.5.4
|
||||
|
||||
@@ -251,6 +251,7 @@ Porting of user applications from an earlier OCCT version to version 6.9.0 requi
|
||||
|
||||
3D Viewer now uses GLSL programs for managing frame buffer and stereoscopic output.
|
||||
For proper initialization, application should configure **CSF_ShadersDirectory** environment variable pointing to a folder with GLSL resources - files from folder **CASROOT**/src/Shaders.
|
||||
*Note that **CSF_ShadersDirectory** become optional since OCCT 7.1.0 release*.
|
||||
|
||||
@subsection upgrade_690_selection Changes in Selection
|
||||
|
||||
@@ -332,6 +333,8 @@ The applications that used these data persistence tools need to be updated to us
|
||||
|
||||
The existing data files in standard formats can be converted using OCCT 6.9.1 or a previous version, as follows.
|
||||
|
||||
@note Reading / writing custom files capability from OCCT 6.9.1 is restored in OCCT 7.2.0. See details in @ref upgrade_720_persistence section.
|
||||
|
||||
#### CSFDB files
|
||||
|
||||
Files in *CSFDB* format (usually with extension .csfdb) contain OCCT shape data that can be converted to BRep format.
|
||||
@@ -507,7 +510,7 @@ This will eliminate the need to include the header *A* in each source file where
|
||||
|
||||
#### Ambiguity of calls to overloaded functions
|
||||
|
||||
This issue appears in the compilers that do not support default arguments in template functions (known cases are Visual C++ 10 and 11): the compiler reports an ambiguity error if a handle is used in the argument of a call to the function that has two or more overloaded versions, accepting handles to different types.
|
||||
This issue appears in the compilers that do not support default arguments in template functions (known cases are Visual C++ 10 and 11): the compiler reports an ambiguity error if a handle is used in the argument of a call to the function that has two or more overloaded versions, receiving handles to different types.
|
||||
The problem is that operator <i> const handle<T2>& </i> is defined for any type *T2*, thus the compiler cannot make the right choice.
|
||||
|
||||
Example:
|
||||
@@ -886,7 +889,7 @@ void UserDrawObject::Compute (const Handle(PrsMgr_PresentationManager3d)& thePrs
|
||||
aGroup->AddElement(anElem);
|
||||
|
||||
// invalidate bounding box of the scene
|
||||
thePrsMgr->StructureManager()->Update (thePrsMgr->StructureManager()->UpdateMode());
|
||||
thePrsMgr->StructureManager()->Update();
|
||||
}
|
||||
~~~~~
|
||||
|
||||
@@ -949,6 +952,11 @@ The related classes, e.g. *AIS_LocalContext*, and methods ( <i>AIS_InteractiveCo
|
||||
|
||||
The main functionality provided by Local Context - selection of object subparts - can be now used within Neutral Point without opening any Local Context.
|
||||
|
||||
The property *SelectionMode()* has been removed from the class *AIS_InteractiveObject*.
|
||||
This property contradicts to selection logic, since it is allowed to activate several Selection modes at once.
|
||||
Therefore keeping one selection mode as object field makes no sense.
|
||||
Applications that used this method should implement selection mode caching at application level, if it is necessary for some reason.
|
||||
|
||||
@subsection upgrade_occt700_separate_caf_visualisation Separation of visualization part from TKCAF
|
||||
|
||||
Visualization CAF attributes have been moved into a new toolkit *TKVCAF*.
|
||||
@@ -982,34 +990,33 @@ Textured objects now have the priority over the environment mapping.
|
||||
Redundant enumerations *V3d_TypeOfSurface* and *Graphic3d_TypeOfSurface*, class *OpenGl_SurfaceDetailState*, the corresponding methods from *Graphic3d_CView, OpenGl_ShaderManager, OpenGl_View, V3d_View* and *V3d_Viewer* have been deleted.
|
||||
Draw command *VSetTextureMode* has been deleted.
|
||||
|
||||
@subsection upgrade_occt700_wfshape Shape presentation builders
|
||||
|
||||
Presentation tools for building Wireframe presentation have been refactored to eliminate duplicated code and interfaces.
|
||||
Therefore, the following classes have been modified:
|
||||
* *StdPrs_WFDeflectionShape* and *Prs3d_WFShape* have been removed. *StdPrs_WFShape* should be used instead.
|
||||
* *StdPrs_ToolShadedShape* has been renamed to *StdPrs_ToolTriangulatedShape*.
|
||||
|
||||
@section upgrade_occt710 Upgrade to OCCT 7.1.0
|
||||
|
||||
@subsection upgrade_occt710_correction_of_Parab2d Correction in *gp_Parab2d, gce_MakeParab2d* and *GCE2d_MakeParabola* classes:
|
||||
|
||||
1. Constructors *GCE2d_MakeParabola(const gp_Ax22d& D, const gp_Pnt2d& F)*, *gce_MakeParab2d(const gp_Ax22d& D, const gp_Pnt2d& F)* and *gp_Parab2d(const gp_Ax22d& D, const gp_Pnt2d& F)* have been deleted.
|
||||
|
||||
2. Objects created with some constructors of *gp_Parab2d* class may differ from the previous version. Please see the updated documentation for *gp_Parab2d* class (file *gp_Parab2d.hxx*).
|
||||
|
||||
3. Result returned by gp_Parab2d::Directrix() method has another direction in compare with previous OCCT-version.
|
||||
|
||||
@subsection upgrade_710_aspects Presentation attributes
|
||||
|
||||
This section should be considered if application defines custom presentations (inherited from AIS_InteractiveObject).
|
||||
Previous versions of OCCT have three levels for defining presentation properties (e.g. colors, materials):
|
||||
This section should be considered if application defines custom presentations, i.e. inherited from *AIS_InteractiveObject*.
|
||||
The previous versions of OCCT have three levels for defining presentation properties (e.g. colors, materials, etc.):
|
||||
|
||||
1. For entire structure (Graphic3d_Structure / Prs3d_Presentation).
|
||||
2. For specific group of primitives (Graphic3d_Group::SetGroupPrimitivesAspect()) overriding structure aspects.
|
||||
3. For specific primitive array within graphic group (Graphic3d_Group::SetPrimitivesAspect()).
|
||||
1. For the entire structure - *Graphic3d_Structure* / *Prs3d_Presentation*.
|
||||
2. For a specific group of primitives - *Graphic3d_Group::SetGroupPrimitivesAspect()* overriding structure aspects.
|
||||
3. For a specific primitive array within the graphic group - *Graphic3d_Group::SetPrimitivesAspect()*.
|
||||
|
||||
The first one is de facto not used for a long time since OCCT presentations always define aspects at graphic group level (overriding any structure aspects).
|
||||
Within this OCCT release, this first level of aspects has been completely removed. In most cases application code should just remove missing methods; in rare cases where this functionality was intentionally used - application should explicitly define aspects to appropriate graphic groups.
|
||||
The structure level has de facto not been used for a long time since OCCT presentations always define aspects at the graphic group level (overriding any structure aspects).
|
||||
Within this OCCT release, structure level of aspects has been completely removed. In most cases the application code should just remove missing methods. In those rare cases, when this functionality was intentionally used, the application should explicitly define aspects to the appropriate graphic groups.
|
||||
|
||||
Note that the 3rd level (defining several different aspects within the same graphic group) is also should be avoided in application code since it is deprecated functionality which can be removed in further releases.
|
||||
Graphic3d_Group::SetGroupPrimitivesAspect() should be the main method defining presentation attributes.
|
||||
Note that defining several different aspects within the same graphic group should also be avoided in the application code since it is a deprecated functionality which can be removed in further releases.
|
||||
*Graphic3d_Group::SetGroupPrimitivesAspect()* should be the main method defining presentation attributes.
|
||||
|
||||
The implementation of Graphic3d_Group::SetGroupPrimitivesAspect() has been changed from copying aspect values to keeping passed object.
|
||||
Although it was not documented, previosly it was possible to modify single aspects instance (like Graphic3d_AspectFillArea3d) and set it to multiple groups.
|
||||
Now such code would produce unexpected result and therefore should be updated to create dedicated aspect instance.
|
||||
The implementation of *Graphic3d_Group::SetGroupPrimitivesAspect()* has been changed from copying aspect values to keeping the passed object.
|
||||
Although it was not documented, previously it was possible to modify a single aspect instance, like *Graphic3d_AspectFillArea3d* and set it to multiple groups.
|
||||
Now such code would produce an unexpected result and therefore should be updated to create the dedicated aspect instance.
|
||||
|
||||
@subsection upgrade_710_types Typedefs
|
||||
|
||||
@@ -1020,64 +1027,336 @@ The following type definitions in OCCT has been modified to use C++11 types:
|
||||
- *Standard_Utf16Char* is now *char16_t* (previously *uint16_t* for compatibility with old compilers).
|
||||
- *Standard_Utf32Char* is now *char32_t* (previously *uint32_t* for compatibility with old compilers).
|
||||
|
||||
For most applications this change should be transparent, since the size of types have not been changed.
|
||||
For most applications this change should be transparent on the level of source code. Binary compatibility is not maintained, as *bool* has a different size in comparison with *unsigned int*.
|
||||
|
||||
@subsection upgrade_710_ffp Programmable Pipeline
|
||||
|
||||
Fixed-function pipeline has been already deprecated since OCCT 7.0.0.
|
||||
Release 7.1.0 disables this functionality by default in favor of Programmable Pipeline (based on GLSL programs).
|
||||
|
||||
This also means that method *V3d_View::Export()* based on gl2ps library and requiring disabled by default functionality has been deprecated as well.
|
||||
Applications should explicitly enable deprecated functionality by setting OpenGl_Caps::ffpEnable flag to TRUE within OpenGl_GraphicDriver::ChangeOptions() before creating the viewer to use V3d_View::Export(),
|
||||
but being aware that this functionality is likely to be removed in a next OCCT release.
|
||||
Thus the recommended way to generate vector image of a 3D model or scene is to use application-level solution independent from OpenGL.
|
||||
Method *V3d_View::Export()*, based on *gl2ps* library, requires fixed pipeline and will return error if used with default settings.
|
||||
Applications should explicitly enable fixed pipeline by setting *OpenGl_Caps::ffpEnable* flag to TRUE within *OpenGl_GraphicDriver::ChangeOptions()* before creating the viewer to use *V3d_View::Export()*.
|
||||
This method is declared as deprecated and will be removed in one of the the next OCCT releases.
|
||||
The recommended way to generate a vector image of a 3D model or scene is to use an application-level solution independent from OpenGL.
|
||||
|
||||
@subsection upgrade_710_trsfpers Transformation persistence
|
||||
|
||||
The behavior of transformation persistence flags *Graphic3d_TMF_ZoomPers* and *Graphic3d_TMF_TriedronPers* have been changed to be consistent with textured fixed-size 2D text.
|
||||
Object with these flags is considered to be defined in pixel units, and presentation is no more scaled depending on view height.
|
||||
Applications that need to scale such objects depending on viewport size should update them manually.
|
||||
The behavior of transformation persistence flags *Graphic3d_TMF_ZoomPers* and *Graphic3d_TMF_TriedronPers* has been changed for consistency with a textured fixed-size 2D text.
|
||||
An object with these flags is considered as defined in pixel units, and the presentation is no more scaled depending on the view height.
|
||||
The applications that need to scale such objects depending on viewport size should update them manually.
|
||||
|
||||
Flags *Graphic3d_TMF_PanPers* and *Graphic3d_TMF_FullPers* has been removed.
|
||||
*Graphic3d_TMF_TriedronPers* or *Graphic3d_TMF_2d* can be used instead depending on context.
|
||||
Flags *Graphic3d_TMF_PanPers* and *Graphic3d_TMF_FullPers* have been removed.
|
||||
*Graphic3d_TMF_TriedronPers* or *Graphic3d_TMF_2d* can be used instead depending on the context.
|
||||
|
||||
*Graphic3d_TransModeFlags* is not an integer bitmask anymore - enumeration values should be specified instead.
|
||||
Several transformation persistence methods in PrsMgr_PresentableObject have been marked deprecated.
|
||||
Transformation persistence should be defined using directly Graphic3d_TransformPers constructor and passed by a handle, not value.
|
||||
Several transformation persistence methods in *PrsMgr_PresentableObject* have been marked deprecated.
|
||||
Transformation persistence should be defined using *Graphic3d_TransformPers* constructor directly and passed by a handle, not value.
|
||||
|
||||
@subsection_upgrade_710_selprops Dynamic highlight and selection properties
|
||||
@subsection upgrade_710_selprops Dynamic highlight and selection properties
|
||||
|
||||
Release 7.1.0 introduces *Graphic3d_HighlightStyle* - an entity that allows flexible customization of highlighting parameters (such as method, highlight color and transparency). Therefore, API of methods related to highlighting in the following core classes:
|
||||
- *AIS_InteractiveContext* (methods HilightWithColor(), Hilight());
|
||||
- *PrsMgr_PresentationManager* (method Color());
|
||||
- *SelectMgr_EntityOwner* (method HilightWithColor())
|
||||
was changed to process Graphic3d_HighlightStyle instead of Quantity_Color.
|
||||
Release 7.1.0 introduces *Graphic3d_HighlightStyle* - an entity that allows flexible customization of highlighting parameters (such as highlighting method, color, and transparency). Therefore, the signatures of the following methods related to highlighting:
|
||||
- *AIS_InteractiveContext::Hilight()*;
|
||||
- *AIS_InteractiveContext::HilightWithColor()*;
|
||||
- *PrsMgr_PresentationManager::Color()*;
|
||||
- *SelectMgr_EntityOwner::HilightWithColor()*;
|
||||
have been changed to receive *Graphic3d_HighlightStyle* instead of *Quantity_Color*.
|
||||
|
||||
Method AIS_InteractiveContext::Hilight is now deprecated and highlights interactive object with selection style.
|
||||
Method *AIS_InteractiveContext::Hilight* is now deprecated and highlights the interactive object with selection style.
|
||||
|
||||
Group of methods AIS_InteractiveContext::IsHilighted changed behavior - now they only check object's or owner's highlight flags in global status. If highlight color is required on application level, overloaded methods AIS_InteractiveContext::HighlightStyle for owner and object must be used instead.
|
||||
A group of methods *AIS_InteractiveContext::IsHilighted* has changed its behavior - now they only check highlight flags of the object or the owner in the global status. If the highlight color is required on the application level, it is necessary to use overloaded methods *AIS_InteractiveContext::HighlightStyle* for the owner and the object.
|
||||
|
||||
The following methods were replaced in AIS_InteractiveContext API:
|
||||
- *HilightColor*, *SetHilightColor* were replaced by *HighlightStyle*, *ChangeHighlightStyle*;
|
||||
- *SelectionColor* setter and getter were replaced by *SelectionStyle*, *ChangeSelectionStyle*.
|
||||
The following methods have been replaced in *AIS_InteractiveContext* class:
|
||||
- *HilightColor* and *SetHilightColor* by *HighlightStyle* and *SetHighlightStyle*;
|
||||
- *SelectionColor* setter and getter by *SelectionStyle* and *SetSelectionStyle*.
|
||||
|
||||
API of Prs3d_Drawer was extended to allow setting up styles for both dynamic selection and highlighting. Therefore, on application level changing highlight style for particular object must be implemented via SelectMgr_SelectableObject::HilightAttributes() and processed in entity owner.
|
||||
The API of *Prs3d_Drawer* has been extended to allow setting up styles for both dynamic selection and highlighting. Therefore, it is possible to change the highlight style of a particular object on the application level via *SelectMgr_SelectableObject::HilightAttributes()* and process it in the entity owner.
|
||||
|
||||
@subsection upgrade_occt710_correction_of_TObj_Model Correction in TObj_Model class
|
||||
|
||||
Methods *TObj_Model::SaveAs* and *TObj_Model::Load* now receive *TCollection_ExtendedString* filename arguments instead of char*. UTF-16 encoding can be used to pass file names containing Unicode symbols.
|
||||
|
||||
@subsection upgrade_710_env Redundant environment variables
|
||||
|
||||
The following environment variables have become redundant:
|
||||
|
||||
* *CSF_UnitsLexicon* and *CSF_UnitsDefinition* are no more used. Units definition (*UnitsAPI/Lexi_Expr.dat* and *UnitsAPI/Units.dat*) is now embedded into source code.
|
||||
* *CSF_XSMessage* and *CSF_XHMessage* are now optional.
|
||||
English messages (XSMessage/*XSTEP.us* and SHMessage/*SHAPE.us*) are now embedded into source code
|
||||
and automatically loaded when environment variables are not set.
|
||||
* *CSF_ShadersDirectory* is not required any more, though it still can be used to load custom shaders.
|
||||
Mandatory GLSL resources are now embedded into source code.
|
||||
* *CSF_PluginDefaults* and other variables pointing to OCAF plugin resources (*CSF_StandardDefaults*, *CSF_XCAFDefaults*, *CSF_StandardLiteDefaults* and *CSF_XmlOcafResource*) are not necessary if method *TDocStd_Application::DefineFormat()* is used to enable persistence of OCAF documents.
|
||||
|
||||
Other environment variables still can be used to customize behavior of relevant algorithms but are not necessary any more (all required resources are embedded).
|
||||
|
||||
@subsection upgrade_710_removed Removed features
|
||||
|
||||
The following obsolete features have been removed:
|
||||
|
||||
* Obsolete Antialiasing API *V3d_View::SetAntialiasingOn()*. This method was intended to activate deprecated OpenGL functionality (GL_POLYGON_SMOOTH, GL_LINE_SMOOTH, GL_POINT_SMOOTH).
|
||||
Instead of old API, application should request MSAA buffers for antialiasing by assigning *Graphic3d_RenderingParams::NbMsaaSamples* property of structure returned by *V3d_View::ChangeRenderingParams()*.
|
||||
* *Prs3d_Drawer::ShadingAspectGlobal()* flag has been removed as not used. Corresponding calls can be removed safely from the application code.
|
||||
* ZClipping planes and ZCueing (methods *V3d_View::SetZClippingType()*, *::SetZCueingOn()* and V3d_View::others).
|
||||
ZClipping planes can be replaced by general-purpose clipping planes (application should update plane definion manually).
|
||||
* 3D viewer printing API *V3d_View::Print()* has been removed. This functionality was available on Windows platforms only.
|
||||
Applications should use general image dump API *V3d_View::ToPixMap()* and manage printing using platform-specific API at application level.
|
||||
* Anti-aliasing API *V3d_View::SetAntialiasingOn()*. This method was intended to activate deprecated OpenGL functionality *GL_POLYGON_SMOOTH, GL_LINE_SMOOTH* and *GL_POINT_SMOOTH*.
|
||||
Instead of the old API, the application should request MSAA buffers for anti-aliasing by assigning *Graphic3d_RenderingParams::NbMsaaSamples* property of the structure returned by *V3d_View::ChangeRenderingParams()*.
|
||||
* *Prs3d_Drawer::ShadingAspectGlobal()* flag has been removed as not used. The corresponding calls can be removed safely from the application code.
|
||||
* The methods managing ZClipping planes and ZCueing: *V3d_View::SetZClippingType()*, *V3d_View::SetZCueingOn()*, etc. have been removed. ZClipping planes can be replaced by general-purpose clipping planes (the application should update plane definition manually).
|
||||
* The 3D viewer printing API *V3d_View::Print()* has been removed. This functionality was available on Windows platforms only. The applications should use the general image dump API *V3d_View::ToPixMap()* and manage printing using a platform-specific API at the application level.
|
||||
Text resolution can be managed by rendering parameter *Graphic3d_RenderingParams::Resolution*, returned by *V3d_View::ChangeRenderingParams()*.
|
||||
* Methods PrsMgr_PresentationManager::BoundBox, PrsMgr_PresentationManager::Hilight and SelectMgr_EntityOwner::Hilight were removed as not used.
|
||||
Corresponding method in custom implementations of SelectMgr_EntityOwner can be removed safely. PrsMgr_PresentationManager::Color with corresponding style must be used instead of removed presentation manager's methods.
|
||||
* Methods *PrsMgr_PresentationManager::BoundBox*, *PrsMgr_PresentationManager::Hilight* and *SelectMgr_EntityOwner::Hilight* have been removed as not used. The corresponding method in custom implementations of *SelectMgr_EntityOwner* can be removed safely. *PrsMgr_PresentationManager::Color* with the corresponding style must be used instead.
|
||||
* Class *NCollection_QuickSort* has been removed. The code that used the tools provided by that class should be corrected manually. The recommended approach is to use sorting algorithms provided by STL (std::sort). See also @ref upgrade_occt700_sorttools above.
|
||||
|
||||
@subsection upgrade_occt710_correction_of_TObj_Model Correction in TObj_Model class
|
||||
* Package *Dico*. The code that used the tools provided by that package should be corrected manually. The recommended approach is to use *NCollection_DataMap* and *NCollection_IndexedDataMap* classes.
|
||||
|
||||
Methods *TObj_Model::SaveAs* and *TObj_Model::Load* receive *TCollection_ExtendedString* filename arguments instead of char*. This shows that the filename may be not-ASCII explicitly. Also it makes OCAF API related to this functionality more conform.
|
||||
@subsection upgrade_710_changed_methods Other changes
|
||||
|
||||
The following classes have been changed:
|
||||
|
||||
* *BVH_Sorter* class has become abstract. The list of arguments of both *Perform* methods has been changed and the methods became pure virtual.
|
||||
* *Extrema_FuncExtPS* has been renamed to *Extrema_FuncPSNorm*.
|
||||
* The default constructor and the constructor taking a point and a surface have been removed from class *Extrema_GenLocateExtPS*. Now the only constructor takes the surface and optional tolerances in U and V directions. The new method *Perform* takes the point with the start solution and processes it. The class has become not assignable and not copy-constructable.
|
||||
* Constructors with arguments *(const gp_Ax22d& D, const gp_Pnt2d& F)* have been removed from *GCE2d_MakeParabola*, *gce_MakeParab2d* and *gp_Parab2d*. The objects created with some constructors of class *gp_Parab2d* may differ from the previous version (see the comments in *gp_Parab2d.hxx*). The result returned by *gp_Parab2d::Directrix()* method has an opposite direction in comparison with the previous OCCT versions.
|
||||
* *BRepTools_Modifier* class now has two modes of work. They are defined by the boolean parameter *MutableInput*, which is turned off by default. This means that the algorithm always makes a copy of a sub-shape (e.g. vertex) if its tolerance is to be increased in the output shape. The old mode corresponds to *MutableInput* turned on. This change may impact an application if it implements a class derived from *BRepTools_Modifier*.
|
||||
* The second parameter *theIsOuterWire* of method *ShapeAnalysis_Wire::CheckSmallArea* has been removed.
|
||||
* In class *GeomPlate_CurveConstraint*, two constructors taking boundary curves of different types have been replaced with one constructor taking the curve of an abstract type.
|
||||
* The last optional argument *RemoveInvalidFaces* has been removed from the constructor of class *BRepOffset_MakeOffset* and method *Initialize*.
|
||||
* The public method *BOPDS_DS::VerticesOnIn* has been renamed into *SubShapesOnIn* and the new output parameter *theCommonPB* has been added.
|
||||
|
||||
@section upgrade_occt720 Upgrade to OCCT 7.2.0
|
||||
|
||||
@subsection upgrade_720_removed Removed features
|
||||
|
||||
The following obsolete features have been removed:
|
||||
* *AIS_InteractiveContext::PreSelectionColor()*, *DefaultColor()*, *WasCurrentTouched()*, *ZDetection()*.
|
||||
These properties were unused, and therefore application should remove occurrences of these methods.
|
||||
* *AIS_InteractiveObject::SelectionPriority()*.
|
||||
These property was not implemented.
|
||||
* The class *LocOpe_HBuilder* has been removed as obsolete.
|
||||
* The package *TestTopOpe* has been removed;
|
||||
* The package *TestTopOpeDraw* has been removed;
|
||||
* The package *TestTopOpeTools* has been removed.
|
||||
* The packages *QANewModTopOpe*, *QANewBRepNaming* and *QANewDBRepNaming* have been removed as containing obsolete features.
|
||||
* The following methods of the *IntPolyh_Triangle* class have been removed as unused:
|
||||
- *CheckCommonEdge*
|
||||
- *SetEdgeandOrientation*
|
||||
- *MultipleMiddleRefinement2*.
|
||||
* The method *IntPolyh_Triangle::TriangleDeflection* has been renamed to *IntPolyh_Triangle::ComputeDeflection*.
|
||||
* The following methods of the *IntPolyh_MaillageAffinage* class have been removed as unused:
|
||||
- *LinkEdges2Triangles*;
|
||||
- *TriangleEdgeContact2*;
|
||||
- *StartingPointsResearch2*;
|
||||
- *NextStartingPointsResearch2*;
|
||||
- *TriangleComparePSP*;
|
||||
- *StartPointsCalcul*.
|
||||
|
||||
@subsection upgrade_occt720_correction_of_Offset_API Corrections in BRepOffset API
|
||||
|
||||
Class *BRepOffsetAPI_MakeOffsetShape*:
|
||||
* *BRepOffsetAPI_MakeOffsetShape::BRepOffsetAPI_MakeOffsetShape()* - constructor with parameters has been deleted.
|
||||
* *BRepOffsetAPI_MakeOffsetShape::PerformByJoin()* - method has been added. This method is old algorithm behaviour.
|
||||
|
||||
The code below shows new calling procedure:
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
|
||||
BRepOffsetAPI_MakeOffsetShape OffsetMaker;
|
||||
OffsetMaker.PerformByJoin(Shape, OffsetValue, Tolerance);
|
||||
NewShape = OffsetMaker.Shape();
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Class *BRepOffsetAPI_MakeThickSolid*:
|
||||
* *BRepOffsetAPI_MakeThickSolid::BRepOffsetAPI_MakeThickSolid()* - constructor with parameters has been deleted.
|
||||
* *BRepOffsetAPI_MakeThickSolid::MakeThickSolidByJoin()* - method has been added. This method is old algorithm behaviour.
|
||||
|
||||
The code below shows new calling procedure:
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
|
||||
BRepOffsetAPI_MakeThickSolid BodyMaker;
|
||||
BodyMaker.MakeThickSolidByJoin(myBody, facesToRemove, -myThickness / 50, 1.e-3);
|
||||
myBody = BodyMaker.Shape();
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
@subsection upgrade_720_highlight Highlight style
|
||||
|
||||
Management of highlight attributes has been revised and might require modifications from application side:
|
||||
* New class *Graphic3d_PresentationAttributes* defining basic presentation attributes has been introduced.
|
||||
It's definition includes properties previously defined by class Graphic3d_HighlightStyle (*Color*, *Transparency*),
|
||||
and new properties (*Display mode*, *ZLayer*, optional *FillArea aspect*).
|
||||
* Class *Prs3d_Drawer* now inherits class *Graphic3d_PresentationAttributes*.
|
||||
So that overall presentation attributes are now split into two parts - Basic attributes and Detailed attributes.
|
||||
* Class *Graphic3d_HighlightStyle* has been dropped.
|
||||
It is now defined as a typedef to *Prs3d_Drawer*.
|
||||
Therefore, highlight style now also includes not only Basic presentation attributes, but also Detailed attributes
|
||||
which can be used by custom presentation builders.
|
||||
* Highlighting style defined by class *Graphic3d_PresentationAttributes* now provides more options:
|
||||
- *Graphic3d_PresentationAttributes::BasicFillAreaAspect()* property providing complete Material definition.
|
||||
This option, when defined, can be used instead of the pair Object Material + Highlight Color.
|
||||
- *Graphic3d_PresentationAttributes::ZLayer()* property specifying the Layer where highlighted presentation should be shown.
|
||||
This property can be set to Graphic3d_ZLayerId_UNKNOWN, which means that ZLayer of main presentation should be used instead.
|
||||
- *Graphic3d_PresentationAttributes::DisplayMode()* property specifying Display Mode for highlight presentation.
|
||||
* Since Highlight and Selection styles within *AIS_InteractiveContext* are now defined by *Prs3d_Drawer* inheriting from *Graphic3d_PresentationAttributes*,
|
||||
it is now possible to customize default highlight attributes like *Display Mode* and *ZLayer*, which previously could be defined only on Object level.
|
||||
* Properties *Prs3d_Drawer::HighlightStyle()* and *Prs3d_Drawer::SelectionStyle()* have been removed.
|
||||
Instead, *AIS_InteractiveObject* now defines *DynamicHilightAttributes()* for dynamic highlighting in addition to *HilightAttributes()* used for highlighting in selected state.
|
||||
* The following protected fields have been removed from class *AIS_InteractiveObject*:
|
||||
- *myOwnColor*, replaced by *myDrawer->Color()*
|
||||
- *myTransparency*, replaced by *myDrawer->Transparency()*
|
||||
- *myZLayer*, replaced by *myDrawer->ZLayer()*
|
||||
* The method *PrsMgr_PresentationManager::Unhighlight()* taking Display Mode as an argument has been marked deprecated.
|
||||
Implementation now performs unhighlighting of all highlighted presentation mode.
|
||||
|
||||
@subsection upgrade_720_implicit_viewer_update Elimination of implicit 3D Viewer updates
|
||||
|
||||
Most AIS_InteractiveContext methods are defined with a flag to update viewer immediatly or not.
|
||||
Within previous version of OCCT, this argument had default value TRUE.
|
||||
While immediate viewer updates are useful for beginners (the result is displayed as soon as possible),
|
||||
this approach is inefficent for batch viewer updates, and having default value as TRUE
|
||||
leaded to non-intended accidential updates which are difficult to find.
|
||||
|
||||
To avoid such issues, the interface has been modified and default value has been removed.
|
||||
Therefore, old application code should be updated to set the flag theToUpdateViewer explicitly
|
||||
to desired value (TRUE to preserve old previous behavior), if it was not already set.
|
||||
|
||||
The follow AIS_InteractiveContext methods have been changed:
|
||||
Display, Erase, EraseAll, DisplayAll, EraseSelected, DisplaySelected, ClearPrs, Remove, RemoveAll, Hilight,
|
||||
HilightWithColor, Unhilight, Redisplay, RecomputePrsOnly, Update, SetDisplayMode, UnsetDisplayMode, SetColor,
|
||||
UnsetColor, SetWidth, UnsetWidth, SetMaterial, UnsetMaterial, SetTransparency, UnsetTransparency,
|
||||
SetLocalAttributes, UnsetLocalAttributes, SetPolygonOffsets, SetTrihedronSize, SetPlaneSize, SetPlaneSize,
|
||||
SetDeviationCoefficient, SetDeviationAngle, SetAngleAndDeviation, SetHLRDeviationCoefficient,
|
||||
SetHLRDeviationAngle, SetHLRAngleAndDeviation, SetSelectedAspect, MoveTo, Select, ShiftSelect, SetSelected,
|
||||
UpdateSelected, AddOrRemoveSelected, HilightSelected, UnhilightSelected, ClearSelected, ResetOriginalState,
|
||||
SubIntensityOn, SubIntensityOff, FitSelected, EraseGlobal, ClearGlobal, ClearGlobalPrs.
|
||||
|
||||
In addition, the API for immediate viewer update has been removed from V3d_View and Graphic3d_StructureManager classes
|
||||
(enumerations *Aspect_TypeOfUpdate* and *V3d_TypeOfUpdate*):
|
||||
V3d::SetUpdateMode(), V3d::UpdateMode(), Graphic3d_StructureManager::SetUpdateMode(), Graphic3d_StructureManager::UpdateMode().
|
||||
|
||||
The argument theUpdateMode has been removed from methods Graphic3d_CView::Display(), Erase(), Update().
|
||||
Method Graphic3d_CView::Update() does not redraw the view and does not re-compute structures anymore.
|
||||
|
||||
The following Grid management methods within class V3d_Viewer do not implicitly redraw the viewer:
|
||||
ActivateGrid, DeactivateGrid, SetRectangularGridValues, SetCircularGridValues,
|
||||
RectangularGridGraphicValues, CircularGridGraphicValues, SetPrivilegedPlane, DisplayPrivilegedPlane.
|
||||
|
||||
@subsection upgrade_720_Result_Of_BOP_On_Containers Result of Boolean operations on containers
|
||||
|
||||
* The result of Boolean operations on arguments of collection types (WIRE/SHELL/COMPSOLID) is now filtered from duplicating containers.
|
||||
|
||||
@subsection upgrade_720_changes_methods Other changes
|
||||
|
||||
* Class GeomPlate_BuildPlateSurface accepts base class Adaptor3d_HCurve (instead of inherited Adaptor3d_HCurveOnSurface accepted earlier).
|
||||
* Types GeomPlate_Array1OfHCurveOnSurface and GeomPlate_HArray1OfHCurveOnSurface have been replaced with GeomPlate_Array1OfHCurve and GeomPlate_HArray1OfHCurve correspondingly (accept base class Adaptor3d_HCurve instead of Adaptor3d_HCurveOnSurface).
|
||||
* Enumeration *Image_PixMap::ImgFormat*, previously declared as nested enumeration within class *Image_PixMap*, has been moved to global namespace as *Image_Format* following OCCT coding rules.
|
||||
The enumeration values have suffix Image_Format_ and preserve previous name scheme for easy renaming of old values - e.g. Image_PixMap::ImgGray become Image_Format_Gray.
|
||||
Old definitions are preserved as depreacated aliases to the new ones.
|
||||
|
||||
@subsection upgrade_720_BOP_DataStructure BOP - Pairs of interfering indices
|
||||
|
||||
* The classes *BOPDS_PassKey* and *BOPDS_PassKeyBoolean* are too excessive and not used any more in Boolean Operations. To replace them the new *BOPDS_Pair* class has been implemented. Thus:
|
||||
- The method *BOPDS_DS::Interferences()* now returns the *BOPDS_MapOfPair*;
|
||||
- The method *BOPDS_Iterator::Value()* takes now only two parameters - the indices of interfering sub-shapes.
|
||||
|
||||
@subsection upgrade_720_Removal_Of_Old_Boolean_Operations_Draw Removal of the Draw commands based on old Boolean operations
|
||||
|
||||
* The commands *fubl* and *cubl* have been removed. The alternative for these commands are the commands *bfuseblend* and *bcutblend* respectively.
|
||||
* The command *ksection* has been removed. The alternative for this command is the command *bsection*.
|
||||
|
||||
@subsection upgrade_720_Change_Of_FaceFace_Intersection Change of Face/Face intersection in Boolean operations
|
||||
|
||||
* Previously, the intersection tolerance for all section curves between pair of faces has been calculated as the maximal tolerance among all curves.
|
||||
Now, each curve has its own valid tolerance calculated as the maximal deviation of the 3D curve from its 2D curves or surfaces in case there are no 2D curves.
|
||||
* The methods *IntTools_FaceFace::TolReached3d()*, *IntTools_FaceFace::TolReal()* and *IntTools_FaceFace::TolReached2d()* have been removed.
|
||||
* Intersection tolerances of the curve can be obtained from the curve itself:
|
||||
- *IntTools_Curve::Tolerance()* - returns the valid tolerance for the curve;
|
||||
- *IntTools_Curve::TangentialTolerance()* - returns the tangential tolerance, which reflects the size of the common between faces.
|
||||
* 2d tolerance (*IntTools_FaceFace::TolReached2d()*) has been completely removed from the algorithm as unused.
|
||||
@subsection upgrade_720_persistence Restore OCCT 6.9.1 persistence
|
||||
|
||||
Capability of reading / writing files in old format using *Storage_ShapeSchema* functionality from OCCT 6.9.1 has been restored in OCCT 7.2.0.
|
||||
|
||||
One can use this functionality in two ways:
|
||||
- invoke DRAW Test Harness commands fsdread / fsdwrite for shapes
|
||||
- call *StdStorage* class Read / Write functions in custom code
|
||||
|
||||
Code example below demonstrates how to read shapes from a storage driver using *StdStorage* class.
|
||||
|
||||
~~~~
|
||||
// aDriver should be created and opened for reading
|
||||
Handle(StdStorage_Data) aData;
|
||||
|
||||
// Read data from the driver
|
||||
// StdStorage::Read creates aData instance automatically if it is null
|
||||
Storage_Error anError = StdStorage::Read(*aDriver, aData);
|
||||
if (anError != Storage_VSOk)
|
||||
{
|
||||
// Error processing
|
||||
}
|
||||
|
||||
// Get root objects
|
||||
Handle(StdStorage_RootData) aRootData = aData->RootData();
|
||||
Handle(StdStorage_HSequenceOfRoots) aRoots = aRootData->Roots();
|
||||
if (!aRoots.IsNull())
|
||||
{
|
||||
// Iterator over the sequence of root objects
|
||||
for (StdStorage_HSequenceOfRoots::Iterator anIt(*aRoots); anIt.More(); anIt.Next())
|
||||
{
|
||||
Handle(StdStorage_Root)& aRoot = anIt.ChangeValue();
|
||||
// Get a persistent root's object
|
||||
Handle(StdObjMgt_Persistent) aPObject = aRoot->Object();
|
||||
if (!aPObject.IsNull())
|
||||
{
|
||||
Handle(ShapePersistent_TopoDS::HShape) aHShape = Handle(ShapePersistent_TopoDS::HShape)::DownCast(aPObject);
|
||||
if (aHShape) // Downcast to an expected type to import transient data
|
||||
{
|
||||
TopoDS_Shape aShape = aHShape->Import();
|
||||
shapes.Append(aShape);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
~~~~
|
||||
|
||||
The following code demonstrates how to write shapes in OCCT 7.2.0 using *StdStorage* class.
|
||||
|
||||
~~~~
|
||||
// Create a file driver
|
||||
NCollection_Handle<Storage_BaseDriver> aFileDriver(new FSD_File());
|
||||
|
||||
// Try to open the file driver for writing
|
||||
try
|
||||
{
|
||||
OCC_CATCH_SIGNALS
|
||||
PCDM_ReadWriter::Open(*aFileDriver, TCollection_ExtendedString(CStringA(filename).GetBuffer()), Storage_VSWrite);
|
||||
}
|
||||
catch (Standard_Failure& e)
|
||||
{
|
||||
// Error processing
|
||||
}
|
||||
|
||||
// Create a storage data instance
|
||||
Handle(StdStorage_Data) aData = new StdStorage_Data;
|
||||
// Set an axiliary application name (optional)
|
||||
aData->HeaderData()->SetApplicationName(TCollection_ExtendedString("Application"));
|
||||
|
||||
// Provide a map to track sharing
|
||||
StdObjMgt_TransientPersistentMap aMap;
|
||||
// Iterator over a collection of shapes
|
||||
for (Standard_Integer i = 1; i <= shapes.Length(); ++i)
|
||||
{
|
||||
TopoDS_Shape aShape = shapes.Value(i);
|
||||
// Translate a shape to a persistent object
|
||||
Handle(ShapePersistent_TopoDS::HShape) aPShape =
|
||||
ShapePersistent_TopoDS::Translate(aShape, aMap, ShapePersistent_WithTriangle);
|
||||
if (aPShape.IsNull())
|
||||
{
|
||||
// Error processing
|
||||
}
|
||||
|
||||
// Construct a root name
|
||||
TCollection_AsciiString aName = "Shape_";
|
||||
aName += i;
|
||||
|
||||
// Add a root to storage data
|
||||
Handle(StdStorage_Root) aRoot = new StdStorage_Root(aName, aPShape);
|
||||
aData->RootData()->AddRoot(aRoot);
|
||||
}
|
||||
|
||||
// Write storage data to the driver
|
||||
Storage_Error anError = StdStorage::Write(*aFileDriver, aData);
|
||||
if (anError != Storage_VSOk)
|
||||
{
|
||||
// Error processing
|
||||
}
|
||||
~~~~
|
||||
|
@@ -175,23 +175,14 @@ Run this command without arguments to get help on supported options.
|
||||
@section OCCT_OVW_SECTION_5 Requirements
|
||||
|
||||
Open CASCADE Technology is designed to be highly portable and is known to
|
||||
work on wide range of platforms (UNIX, Linux, Windows, Mac OS X, Android).
|
||||
work on wide range of platforms.
|
||||
Current version is officially certified on Windows (IA-32 and x86-64),
|
||||
Linux (x86-64), MAC OS X (x86-64) and Android (4.0.4 armv7) platforms.
|
||||
Linux (x86-64), OS X / macOS (x86-64), Android (armv7 and x86), and
|
||||
iOS (armv7, arm64) platforms.
|
||||
|
||||
The tables below describe the recommended hardware and software configurations
|
||||
The tables below describe the recommended software configurations
|
||||
for which OCCT is certified to work.
|
||||
|
||||
@subsection overview_req_os Operating System
|
||||
|
||||
| OS | Versions |
|
||||
| --------- | ----------- |
|
||||
| Windows | 10, 8.1, 7 SP1, Vista SP2 |
|
||||
| Linux | Mandriva 2010, CentOS 6.3, Fedora 18, Ubuntu 14.10 - 15.10, Debian 6.0, Debian 7.0 |
|
||||
| OS X | 10.10 Yosemite / 10.9 Mavericks / 10.8 Mountain Lion / 10.7 Lion |
|
||||
| Android | 6.x, 5.x, 4.0.4+ |
|
||||
| iOS | iOS 7 |
|
||||
|
||||
@subsection overview_req_cpp C++ Compiler / IDE
|
||||
|
||||
| OS | Compiler |
|
||||
@@ -229,19 +220,14 @@ On desktop, 3D viewer for optimal performance requires graphics processing unit
|
||||
Ray tracing requires OpenGL 4.0+ or OpenGL 3.3+ with *GL_ARB_texture_buffer_object_rgb32* extension.
|
||||
Textures within ray tracing will be available only when *GL_ARB_bindless_texture extension* is provided by driver.
|
||||
|
||||
On mobile platforms, OpenGL ES 2.0+ is required for 3D viewer. The ray tracing is not yet available on mobile platforms.
|
||||
On mobile platforms, OpenGL ES 2.0+ is required for 3D viewer (OpenGL ES 3.1+ is recommended).
|
||||
The ray tracing is not yet available on mobile platforms.
|
||||
Some old hardware might be unable to execute complex GLSL programs (e.g. with high number of light sources, clipping planes).
|
||||
|
||||
The following table lists graphic cards tested to work with OCCT.
|
||||
|
||||
| Graphic card | Driver | OS | OpenGL (fixed pipeline) | OpenGL (shaders) | OpenGL (ray tracing) |
|
||||
| ---- | ---- | ---- | :----: | :----: | :----: |
|
||||
| NVIDIA GeForce GTX 650 | Driver 340.52, OpenGL 4.4 | Windows 7 64 bit | OK | OK | OK |
|
||||
| AMD/ATI RadeOn HD 7870 | Driver 14.100, OpenGL 4.4 | Windows 7 64-bit | OK | OK | OK |
|
||||
| Intel(R) HD Graphics 2500 | Driver 10.18.10.3621, OpenGL 4.0 | Windows 7 64 bit | OK | OK | limited (no textures) |
|
||||
| NVIDIA GeForce 320 | N/A | Mac OS X 10.6 / OS X 10.10 | OK | OK | not yet supported by OCCT |
|
||||
| Apple software OpenGL | N/A | Mac OS X 10.6 / OS X 10.10 | OK | OK | N/A |
|
||||
| Mesa 10.2.4 (software emulator) | "Gallium 0.4 on llvmpipe (LLVM 3.4, 256 bits)" OpenGL 3.0 | Windows 7 64 bit | OK | OK | unsupported by software |
|
||||
OCCT 3D Viewer, in general, supports wide range of graphics hardware - from very old to new.
|
||||
Therefore, if you observe some unexpected visual issues - first check for OpenGL driver update (or firmware update in case of mobile platforms);
|
||||
but beware that driver update might also come with new bugs.
|
||||
Don't forget to report these bugs to vendors.
|
||||
|
||||
@section OCCT_OVW_SECTION_4 Installation
|
||||
|
||||
@@ -346,10 +332,9 @@ The scripts are located in the OCCT root folder.
|
||||
* **CSF_DEBUG** (optional, Windows only): if defined then a diagnostic message is displayed in case of an exception;
|
||||
* **CSF_DEBUG_BOP** (optional): if defined then it should specify directory where diagnostic data on problems occured in Boolean operations will be saved;
|
||||
* **CSF_MDTVTexturesDirectory** defines the directory for available textures when using texture mapping;
|
||||
* **CSF_ShadersDirectory** defines the directory for GLSL programs (required for 3D viewer to work);
|
||||
* **CSF_UnitsDefinition** and **CSF_UnitsLexicon** should define paths to resource files Lexi_Expr.dat and Units.dat, respectively (required for support of measurement units);
|
||||
* **CSF_SHMessage** defines the path to the messages file for *ShapeHealing*;
|
||||
* **CSF_XSMessage** defines the path to the messages file for **STEP** and **IGES** translators;
|
||||
* **CSF_ShadersDirectory** (optional) defines the directory for GLSL programs for Ray Tracing renderer (embedded resources are used when variable is undefined);
|
||||
* **CSF_SHMessage** (optional) defines the path to the messages file for *ShapeHealing*;
|
||||
* **CSF_XSMessage** (optional) defines the path to the messages file for **STEP** and **IGES** translators;
|
||||
* **CSF_StandardDefaults**, **CSF_StandardLiteDefaults*, **CSF_XCAFDefaults**, and **CSF_PluginDefaults** define paths to directory where configuration files for OCAF persistence are located (required for open/save operations with OCAF documents);
|
||||
* **CSF_IGESDefaults** and **CSF_STEPDefaults** (optional) define paths to directory where resource files of **IGES** and **STEP** translators are located;
|
||||
* **CSF_XmlOcafResource** is required in order to set the path to **XSD** resources, which defines XML grammar.
|
||||
|
@@ -484,10 +484,12 @@ The collection for shapes can be found in the *TopTools* package. As *BRepOffset
|
||||
facesToRemove.Append(faceToRemove);
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
All the necessary data are now available so you can create your hollowed solid by calling the *BRepOffsetAPI_MakeThickSolid* constructor:
|
||||
All the necessary data are now available so you can create your hollowed solid by calling the *BRepOffsetAPI_MakeThickSolid* MakeThickSolidByJoin method:
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
|
||||
MyBody = BRepOffsetAPI_MakeThickSolid(myBody, facesToRemove, -myThickness / 50, 1.e-3);
|
||||
BRepOffsetAPI_MakeThickSolid BodyMaker;
|
||||
BodyMaker.MakeThickSolidByJoin(myBody, facesToRemove, -myThickness / 50, 1.e-3);
|
||||
myBody = BodyMaker.Shape();
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
|
||||
@@ -812,7 +814,9 @@ Complete definition of MakeBottle function (defined in the file src/MakeBottle.c
|
||||
|
||||
TopTools_ListOfShape facesToRemove;
|
||||
facesToRemove.Append(faceToRemove);
|
||||
myBody = BRepOffsetAPI_MakeThickSolid(myBody, facesToRemove, -myThickness / 50, 1.e-3);
|
||||
BRepOffsetAPI_MakeThickSolid BodyMaker;
|
||||
BodyMaker.MakeThickSolidByJoin(myBody, facesToRemove, -myThickness / 50, 1.e-3);
|
||||
myBody = BodyMaker.Shape();
|
||||
// Threading : Create Surfaces
|
||||
Handle(Geom_CylindricalSurface) aCyl1 = new Geom_CylindricalSurface(neckAx2, myNeckRadius * 0.99);
|
||||
Handle(Geom_CylindricalSurface) aCyl2 = new Geom_CylindricalSurface(neckAx2, myNeckRadius * 1.05);
|
||||
|
BIN
dox/user_guides/boolean_operations/images/bsplit_image001.png
Normal file
After Width: | Height: | Size: 38 KiB |
BIN
dox/user_guides/boolean_operations/images/bsplit_image002.png
Normal file
After Width: | Height: | Size: 36 KiB |
BIN
dox/user_guides/boolean_operations/images/bsplit_image003.png
Normal file
After Width: | Height: | Size: 27 KiB |
BIN
dox/user_guides/boolean_operations/images/bsplit_image004.png
Normal file
After Width: | Height: | Size: 9.4 KiB |
BIN
dox/user_guides/boolean_operations/images/bsplit_image005.png
Normal file
After Width: | Height: | Size: 19 KiB |