aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/opencascade
diff options
context:
space:
mode:
Diffstat (limited to 'vcpkg/ports/opencascade')
-rw-r--r--vcpkg/ports/opencascade/dependencies.patch104
-rw-r--r--vcpkg/ports/opencascade/drop-bin-letter-d.patch45
-rw-r--r--vcpkg/ports/opencascade/fix-install-prefix-path.patch12
-rw-r--r--vcpkg/ports/opencascade/install-include-dir.patch16
-rw-r--r--vcpkg/ports/opencascade/portfile.cmake79
-rw-r--r--vcpkg/ports/opencascade/remove-vcpkg-enabling.patch14
-rw-r--r--vcpkg/ports/opencascade/vcpkg.json78
7 files changed, 348 insertions, 0 deletions
diff --git a/vcpkg/ports/opencascade/dependencies.patch b/vcpkg/ports/opencascade/dependencies.patch
new file mode 100644
index 0000000..f319108
--- /dev/null
+++ b/vcpkg/ports/opencascade/dependencies.patch
@@ -0,0 +1,104 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 34300d41ad..263b4bcbd3 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -518,8 +518,8 @@ endif()
+ if (CAN_USE_FREETYPE AND USE_FREETYPE)
+ message (STATUS "Info: FreeType is used by OCCT")
+ add_definitions (-DHAVE_FREETYPE)
+- OCCT_ADD_VCPKG_FEATURE ("freetype")
+- list (APPEND OCCT_3RDPARTY_CMAKE_LIST "adm/cmake/freetype")
++ find_package(Freetype MODULE REQUIRED)
++ set(CSF_FREETYPE Freetype::Freetype)
+ else()
+ if (NOT CAN_USE_FREETYPE)
+ OCCT_CHECK_AND_UNSET ("USE_FREETYPE")
+@@ -534,9 +534,10 @@ endif()
+ # VTK
+ if (USE_VTK)
+ add_definitions (-DHAVE_VTK)
+- OCCT_ADD_VCPKG_FEATURE ("vtk")
+ set (OCCT_VTK_USED_TARGETS "" CACHE INTERNAL "" FORCE)
+- list (APPEND OCCT_3RDPARTY_CMAKE_LIST "adm/cmake/vtk")
++ find_package(VTK REQUIRED)
++ set(CSF_VTK VTK::CommonCore)
++ set(IS_VTK_9XX 1)
+ else()
+ OCCT_CHECK_AND_UNSET_GROUP ("3RDPARTY_VTK")
+ OCCT_UNSET_VCPKG_FEATURE ("vtk")
+@@ -551,8 +552,8 @@ endif()
+ # FREEIMAGE
+ if (CAN_USE_FREEIMAGE AND USE_FREEIMAGE)
+ add_definitions (-DHAVE_FREEIMAGE)
+- OCCT_ADD_VCPKG_FEATURE ("freeimage")
+- list (APPEND OCCT_3RDPARTY_CMAKE_LIST "adm/cmake/freeimage")
++ find_package(freeimage CONFIG REQUIRED)
++ set(CSF_FreeImagePlus freeimage::FreeImagePlus)
+ elseif (NOT CAN_USE_FREEIMAGE)
+ OCCT_CHECK_AND_UNSET ("USE_FREEIMAGE")
+ OCCT_UNSET_VCPKG_FEATURE ("freeimage")
+@@ -647,8 +648,8 @@ endif()
+ # TBB
+ if (CAN_USE_TBB AND USE_TBB)
+ add_definitions (-DHAVE_TBB)
+- OCCT_ADD_VCPKG_FEATURE ("tbb")
+- list (APPEND OCCT_3RDPARTY_CMAKE_LIST "adm/cmake/tbb")
++ find_package(TBB CONFIG REQUIRED)
++ set(CSF_TBB TBB::tbb TBB::tbbmalloc)
+ elseif (NOT CAN_USE_TBB)
+ OCCT_CHECK_AND_UNSET ("USE_TBB")
+ OCCT_UNSET_VCPKG_FEATURE ("tbb")
+@@ -664,8 +665,8 @@ endif()
+ OCCT_IS_PRODUCT_REQUIRED (CSF_RapidJSON CAN_USE_RAPIDJSON)
+ if (CAN_USE_RAPIDJSON AND USE_RAPIDJSON)
+ add_definitions (-DHAVE_RAPIDJSON)
+- OCCT_ADD_VCPKG_FEATURE ("rapidjson")
+- list (APPEND OCCT_3RDPARTY_CMAKE_LIST "adm/cmake/rapidjson")
++ find_package(RapidJSON CONFIG REQUIRED)
++ set(CSF_RapidJSON rapidjson)
+ elseif (NOT CAN_USE_RAPIDJSON)
+ OCCT_CHECK_AND_UNSET ("USE_RAPIDJSON")
+ OCCT_UNSET_VCPKG_FEATURE ("rapidjson")
+diff --git a/adm/templates/OpenCASCADEConfig.cmake.in b/adm/templates/OpenCASCADEConfig.cmake.in
+index add6a678c7..312930343e 100644
+--- a/adm/templates/OpenCASCADEConfig.cmake.in
++++ b/adm/templates/OpenCASCADEConfig.cmake.in
+@@ -71,6 +71,23 @@ set (OpenCASCADE_WITH_GLES2 @USE_GLES2@)
+ @SET_OpenCASCADE_WITH_D3D@
+ @SET_OpenCASCADE_WITH_GLX@
+
++include(CMakeFindDependencyMacro)
++if("@USE_FREEIMAGE@")
++ find_dependency(freeimage CONFIG)
++endif()
++if("@USE_FREETYPE@")
++ find_dependency(Freetype MODULE)
++endif()
++if("@USE_RAPIDJSON@")
++ find_package(RapidJSON CONFIG REQUIRED)
++endif()
++if("@USE_TBB@")
++ find_dependency(TBB CONFIG)
++endif()
++if("@USE_VTK@")
++ find_dependency(VTK REQUIRED)
++endif()
++
+ # Import OpenCASCADE compile definitions, C and C++ flags for each installed configuration.
+ file(GLOB CONFIG_FILES "${CMAKE_CURRENT_LIST_DIR}/OpenCASCADECompileDefinitionsAndFlags-*.cmake")
+ foreach(f ${CONFIG_FILES})
+diff --git a/src/Image/Image_AlienPixMap.cxx b/src/Image/Image_AlienPixMap.cxx
+index 81289d953b..5ee49e9ff2 100644
+--- a/src/Image/Image_AlienPixMap.cxx
++++ b/src/Image/Image_AlienPixMap.cxx
+@@ -19,10 +19,6 @@
+
+ #ifdef HAVE_FREEIMAGE
+ #include <FreeImage.h>
+-
+- #ifdef _MSC_VER
+- #pragma comment(lib, "FreeImage.lib")
+- #endif
+ #elif defined(HAVE_WINCODEC)
+ #include <wincodec.h>
+ // prevent warnings on MSVC10
diff --git a/vcpkg/ports/opencascade/drop-bin-letter-d.patch b/vcpkg/ports/opencascade/drop-bin-letter-d.patch
new file mode 100644
index 0000000..d3c3df6
--- /dev/null
+++ b/vcpkg/ports/opencascade/drop-bin-letter-d.patch
@@ -0,0 +1,45 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index d051f5ccce..91517a5936 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -317,7 +317,6 @@ set (CMAKE_INSTALL_PREFIX "${INSTALL_DIR}" CACHE INTERNAL "" FORCE)
+
+ set (BIN_LETTER "")
+ if ("${CMAKE_BUILD_TYPE}" STREQUAL "Debug")
+- set (BIN_LETTER "d")
+ elseif ("${CMAKE_BUILD_TYPE}" STREQUAL "RelWithDebInfo")
+ set (BIN_LETTER "i")
+ endif()
+@@ -1002,6 +1001,7 @@ if (WIN32)
+ set (CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE "${CMAKE_BINARY_DIR}/${OS_WITH_BIT}/${COMPILER}/bin")
+ set (CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_BINARY_DIR}/${OS_WITH_BIT}/${COMPILER}/bini")
+ set (CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG "${CMAKE_BINARY_DIR}/${OS_WITH_BIT}/${COMPILER}/bind")
++ set (CMAKE_PDB_OUTPUT_DIRECTORY_DEBUG "${CMAKE_BINARY_DIR}/${OS_WITH_BIT}/${COMPILER}/bin")
+ endif()
+
+ string(TIMESTAMP CURRENT_TIME "%H:%M:%S")
+diff --git a/adm/cmake/occt_macros.cmake b/adm/cmake/occt_macros.cmake
+index 92a8db33dc..3d4c95b584 100644
+--- a/adm/cmake/occt_macros.cmake
++++ b/adm/cmake/occt_macros.cmake
+@@ -779,7 +779,7 @@ macro (OCCT_INSERT_CODE_FOR_TARGET)
+ elseif (\"\${CMAKE_INSTALL_CONFIG_NAME}\" MATCHES \"^([Rr][Ee][Ll][Ww][Ii][Tt][Hh][Dd][Ee][Bb][Ii][Nn][Ff][Oo])$\")
+ set (OCCT_INSTALL_BIN_LETTER \"i\")
+ elseif (\"\${CMAKE_INSTALL_CONFIG_NAME}\" MATCHES \"^([Dd][Ee][Bb][Uu][Gg])$\")
+- set (OCCT_INSTALL_BIN_LETTER \"d\")
++ set (OCCT_INSTALL_BIN_LETTER \"\")
+ endif()")
+ endmacro()
+
+diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt
+index beb934f7..95cec74a 100644
+--- a/tools/CMakeLists.txt
++++ b/tools/CMakeLists.txt
+@@ -172,7 +172,6 @@ set (CMAKE_INSTALL_PREFIX "${INSTALL_DIR}" CACHE INTERNAL "" FORCE)
+
+ set (BIN_LETTER "")
+ if ("${CMAKE_BUILD_TYPE}" STREQUAL "Debug")
+- set (BIN_LETTER "d")
+ elseif ("${CMAKE_BUILD_TYPE}" STREQUAL "RelWithDebInfo")
+ set (BIN_LETTER "i")
+ endif()
diff --git a/vcpkg/ports/opencascade/fix-install-prefix-path.patch b/vcpkg/ports/opencascade/fix-install-prefix-path.patch
new file mode 100644
index 0000000..ccc5598
--- /dev/null
+++ b/vcpkg/ports/opencascade/fix-install-prefix-path.patch
@@ -0,0 +1,12 @@
+diff --git a/adm/templates/OpenCASCADEConfig.cmake.in b/adm/templates/OpenCASCADEConfig.cmake.in
+index e391ddfe8e..c926c499ac 100644
+--- a/adm/templates/OpenCASCADEConfig.cmake.in
++++ b/adm/templates/OpenCASCADEConfig.cmake.in
+@@ -24,6 +24,7 @@ set (OpenCASCADE_DEVELOPMENT_VERSION "@OCC_VERSION_DEVELOPMENT@")
+ # - in Android style: $INSTALL_DIR/libs/$CMAKE_ANDROID_ARCH_ABI/cmake/opencascade-<version>
+ get_filename_component (OpenCASCADE_INSTALL_PREFIX "${CMAKE_CURRENT_LIST_FILE}" PATH)
+ get_filename_component (OpenCASCADE_INSTALL_PREFIX "${OpenCASCADE_INSTALL_PREFIX}" PATH)
++get_filename_component (OpenCASCADE_INSTALL_PREFIX "${OpenCASCADE_INSTALL_PREFIX}" PATH)
+ if (OpenCASCADE_INSTALL_PREFIX MATCHES "/cmake$")
+ get_filename_component (OpenCASCADE_INSTALL_PREFIX "${OpenCASCADE_INSTALL_PREFIX}" PATH)
+ endif()
diff --git a/vcpkg/ports/opencascade/install-include-dir.patch b/vcpkg/ports/opencascade/install-include-dir.patch
new file mode 100644
index 0000000..f250fbb
--- /dev/null
+++ b/vcpkg/ports/opencascade/install-include-dir.patch
@@ -0,0 +1,16 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 715adb7c2e..a06f8a8c88 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -1375,6 +1375,11 @@ foreach (OCCT_MODULE ${OCCT_MODULES})
+ endforeach()
+ set (OCCT_MODULES_ENABLED ${OCCT_MODULES_ENABLED_SORTED})
+
++foreach (OCCT_LIBRARY IN LISTS OCCT_LIBRARIES)
++ target_include_directories(${OCCT_LIBRARY} INTERFACE $<INSTALL_INTERFACE:include/opencascade>) # OpenCASCADE_INCLUDE_DIR
++ target_include_directories(${OCCT_LIBRARY} INTERFACE $<INSTALL_INTERFACE:include>) # vcpkg lock-in
++endforeach()
++
+ # Add all targets to the build-tree export set
+ export (TARGETS ${OCCT_LIBRARIES} FILE "${CMAKE_BINARY_DIR}/OpenCASCADETargets.cmake")
+
diff --git a/vcpkg/ports/opencascade/portfile.cmake b/vcpkg/ports/opencascade/portfile.cmake
new file mode 100644
index 0000000..50af5ae
--- /dev/null
+++ b/vcpkg/ports/opencascade/portfile.cmake
@@ -0,0 +1,79 @@
+string(REPLACE "." "_" VERSION_STR "V${VERSION}")
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO Open-Cascade-SAS/OCCT
+ REF "${VERSION_STR}"
+ SHA512 58f9ab91c5119e0a99fb7599bce574f17ce3e3a802a9c503fa0464228d5b2141e3f5557ef68355b4921b572bd10d99bec0f31836a103d5e5fa98cd0d685610a2
+ HEAD_REF master
+ PATCHES
+ fix-install-prefix-path.patch
+ drop-bin-letter-d.patch
+ dependencies.patch
+ install-include-dir.patch
+ remove-vcpkg-enabling.patch
+)
+
+if (VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
+ set(BUILD_TYPE "Shared")
+else()
+ set(BUILD_TYPE "Static")
+endif()
+
+vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
+ FEATURES
+ freeimage USE_FREEIMAGE
+ freetype USE_FREETYPE
+ rapidjson USE_RAPIDJSON
+ samples INSTALL_SAMPLES
+ tbb USE_TBB
+ vtk USE_VTK
+)
+
+# We turn off BUILD_MODULE_Draw as it requires TCL 8.6 and TK 8.6 specifically which conflicts with vcpkg only having TCL 9.0
+# And pre-built ActiveTCL binaries are behind a marketing wall :(
+# We use the Unix install layout for Windows as it matches vcpkg
+vcpkg_cmake_configure(
+ SOURCE_PATH "${SOURCE_PATH}"
+ OPTIONS
+ ${FEATURE_OPTIONS}
+ -DBUILD_LIBRARY_TYPE=${BUILD_TYPE}
+ -DBUILD_MODULE_Draw=OFF
+ -DBUILD_DOC_Overview=OFF
+ -DBUILD_MODULE_DETools=OFF
+ -DINSTALL_DIR_LAYOUT=Unix
+ -DINSTALL_DIR_DOC=share/trash
+ -DINSTALL_DIR_SCRIPT=share/trash # not relocatable
+ -DINSTALL_TEST_CASES=OFF
+ -DUSE_TK=OFF
+ OPTIONS_DEBUG
+ -DINSTALL_SAMPLES=OFF
+)
+
+vcpkg_cmake_install()
+
+vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/opencascade)
+
+#make occt includes relative to source_file
+file(GLOB extra_headers
+ LIST_DIRECTORIES false
+ RELATIVE "${CURRENT_PACKAGES_DIR}/include/opencascade"
+ "${CURRENT_PACKAGES_DIR}/include/opencascade/*.h"
+)
+list(JOIN extra_headers "|" extra_headers)
+file(GLOB files "${CURRENT_PACKAGES_DIR}/include/opencascade/*.[hgl]xx")
+foreach(file_name IN LISTS files)
+ file(READ "${file_name}" filedata)
+ string(REGEX REPLACE "(# *include) <([a-zA-Z0-9_]*[.][hgl]xx|${extra_headers})>" [[\1 "\2"]] filedata "${filedata}")
+ file(WRITE "${file_name}" "${filedata}")
+endforeach()
+
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share")
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/opencascade/samples/qt")
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/trash")
+
+vcpkg_install_copyright(
+ FILE_LIST
+ "${SOURCE_PATH}/LICENSE_LGPL_21.txt"
+ "${SOURCE_PATH}/OCCT_LGPL_EXCEPTION.txt"
+)
diff --git a/vcpkg/ports/opencascade/remove-vcpkg-enabling.patch b/vcpkg/ports/opencascade/remove-vcpkg-enabling.patch
new file mode 100644
index 0000000..a11da75
--- /dev/null
+++ b/vcpkg/ports/opencascade/remove-vcpkg-enabling.patch
@@ -0,0 +1,14 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index a06f8a8c88..de45605c62 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -2,9 +2,6 @@ cmake_minimum_required (VERSION 3.10 FATAL_ERROR)
+
+ if (NOT DEFINED BUILD_USE_VCPKG)
+ set (BUILD_USE_VCPKG OFF CACHE BOOL "Use vcpkg for 3rdparty libraries.")
+- if (CMAKE_TOOLCHAIN_FILE MATCHES "vcpkg.cmake")
+- set (BUILD_USE_VCPKG ON)
+- endif()
+ endif()
+
+ if (BUILD_USE_VCPKG)
diff --git a/vcpkg/ports/opencascade/vcpkg.json b/vcpkg/ports/opencascade/vcpkg.json
new file mode 100644
index 0000000..f66a404
--- /dev/null
+++ b/vcpkg/ports/opencascade/vcpkg.json
@@ -0,0 +1,78 @@
+{
+ "name": "opencascade",
+ "version": "7.9.2",
+ "description": "Open CASCADE Technology (OCCT) is an open-source software development platform for 3D CAD, CAM, CAE.",
+ "homepage": "https://github.com/Open-Cascade-SAS/OCCT",
+ "license": "LGPL-2.1-only",
+ "supports": "!xbox",
+ "dependencies": [
+ {
+ "name": "angle",
+ "platform": "uwp"
+ },
+ {
+ "name": "opengl",
+ "platform": "!(android | ios | uwp | wasm32)"
+ },
+ {
+ "name": "vcpkg-cmake",
+ "host": true
+ },
+ {
+ "name": "vcpkg-cmake-config",
+ "host": true
+ }
+ ],
+ "default-features": [
+ {
+ "name": "freetype",
+ "platform": "!uwp"
+ }
+ ],
+ "features": {
+ "freeimage": {
+ "description": "Enable optional usage of freeimage",
+ "dependencies": [
+ "freeimage"
+ ]
+ },
+ "freetype": {
+ "description": "Use of freetype",
+ "supports": "!uwp",
+ "dependencies": [
+ "fontconfig",
+ {
+ "name": "freetype",
+ "default-features": false
+ }
+ ]
+ },
+ "rapidjson": {
+ "description": "Enable optional usage of rapidjson",
+ "dependencies": [
+ "rapidjson"
+ ]
+ },
+ "samples": {
+ "description": "Enable optional samples"
+ },
+ "tbb": {
+ "description": "Enable optional usage of tbb",
+ "dependencies": [
+ "tbb"
+ ]
+ },
+ "vtk": {
+ "description": "Enable optional usage of vtk",
+ "dependencies": [
+ {
+ "name": "vtk",
+ "default-features": false,
+ "features": [
+ "opengl"
+ ]
+ }
+ ]
+ }
+ }
+}