Commit Graph

240 Commits

Author SHA1 Message Date
Pasukhin Dmitry
8ee0d35c96 Testing - Add support for ARM64 architecture (#1149)
- Allow the custom `tcl` vcpkg port to build on Windows ARM64 and map vcpkg architecture to Tcl’s NMAKE build flags.
- Add a `target-arch` input to the composite GitHub Actions used to configure/build OCCT, selecting the correct CMake `-A` architecture and vcpkg triplet.
- Adjust OCCT CMake vcpkg feature list macros to update `VCPKG_MANIFEST_FEATURES` in the current scope.
2026-03-07 17:49:26 +00:00
Pasukhin Dmitry
e72d772e70 Coding - Bump version to 8.0.0-rc4 (#1095) 2026-02-16 14:56:51 +00:00
Pasukhin Dmitry
09996b852b Foundation Classes - Extend precompiled headers (#1029)
- Added precompiled header file for TKBool toolkit with commonly used headers
- Extended TKDESTEP precompiled headers with Interface_EntityIterator.hxx
- Configured Google Test to use precompiled headers when BUILD_USE_PCH is enabled
2026-01-23 19:55:58 +00:00
Pasukhin Dmitry
281d1475e2 Configuration - Accept empty FILES content (#1017)
Remove warning message for missing files in EXTRACT_PACKAGE_FILES function
2026-01-18 18:22:15 +00:00
Pasukhin Dmitry
14d4e91171 Coding - Global Refactoring OCCT as a part of 8.0.0 (#955)
- Added automated migration scripts for handle syntax, standard types, and macros
- Deprecated legacy `Standard_*` types and macros in favor of native C++ equivalents
- Introduced modern `occ` namespace with template-based type checking helpers
- Enhanced NCollection macros to support variadic arguments for complex template types- Added automated migration scripts for handle syntax, standard types, and macros
- Deprecated legacy `Standard_*` types and macros in favor of native C++ equivalents
- Introduced modern `occ` namespace with template-based type checking helpers
- Enhanced NCollection macros to support variadic arguments for complex template types
2025-12-28 14:38:06 +00:00
Pasukhin Dmitry
a15fed9b86 Coding - Temporary remove samples from the repository (#960)
- Moved tcl samples to resource folder.
- Clean up cmake from samples related settings.
- Removed CSharp samples from the repository.
- Removed MFC samples from the repository.
- Removed Qt samples from the repository.
- Removed Inspector samples from the repository.
- Removed glwin samples from the repository.
- Removed webgl samples from the repository.
- Removed xaml samples from the repository.
- Removed Java samples from the repository.
2025-12-27 21:51:28 +00:00
dpasukhi
c1f6a13240 Coding - Bump version to 8.0.0-rc3 2025-12-15 12:49:25 +00:00
Pasukhin Dmitry
787a80fbe8 Build - Fix C++ standard options and NOMINMAX scope (#907)
- Fix C++ standard dropdown: split "C++23 C++26" into separate options
- Move NOMINMAX define from MSVC-only to all WIN32 compilers
2025-12-12 21:56:44 +00:00
Pasukhin Dmitry
d349cd4a67 Configuration - Update compiler flags and includes for macOS (#884)
- Added flags to suppress elaborated-enum-base warnings for newer Clang versions on macOS
- Updated includes in TDF_AttributeMap.hxx to include Standard_Handle.hxx
- Modified hash functions in GeomHash and Geom2dHash classes to use Standard_CStringHasher instead of Standard_HashUtils
2025-12-05 16:05:07 +00:00
dpasukhi
7b572da23f Revert " Configuration - Modernize compiler flags for C++17 and add Production optimizations (#867)"
This reverts commit 9edeecb791.
2025-12-02 17:39:03 +00:00
Pasukhin Dmitry
9edeecb791 Configuration - Modernize compiler flags for C++17 and add Production optimizations (#867)
- Removes obsolete compiler version checks (SSE2 for VS 2005-2010, GCC 4.6 deprecation warnings)
- Replaces deprecated CMake variables `CMAKE_COMPILER_IS_GNUCC/GNUCXX` with modern `CMAKE_CXX_COMPILER_ID`
- Adds production optimizations: aggressive inlining, linker optimizations, and security hardening flags
2025-11-30 14:39:43 +00:00
Dmitrii Kulikov
c479f6e000 Coding - Rework of Math global functions to stl (#833)
Majority of functions now simply call same functions from std namespace.
Functions that duplicate std namespace functionality are declared
deprecated.
Calls of deprecated functions are replaced with std functions calls.
2025-11-17 14:20:24 +00:00
Pasukhin Dmitry
190c90c856 Configuration - Validate the configuration on CMake 3.10 and later (#762)
- adm/cmake/gtest.cmake: check CMake version before using FetchContent; emit a warning and skip FetchContent-based GoogleTest setup when CMake < 3.11.
- adm/cmake/occt_macros.cmake: wrap list(REMOVE_DUPLICATES ...) calls in if() checks to avoid operating on empty/unset variables.
2025-10-25 15:49:04 +01:00
dpasukhi
ed363c944c Coding - Bump version to 8.0.0-rc2 2025-07-29 12:45:21 +01:00
Pasukhin Dmitry
1434cd7da3 CMake - Remove unused CMake script (#644)
Removed script for OCCT toolkit sample preparation
2025-07-26 13:21:22 +01:00
Pasukhin Dmitry
e42a043abe Samples - CMake configuration fix (#643)
- Migrates legacy text-based FILES, PACKAGES, and EXTERNLIB configuration files to proper CMake format (.cmake extensions)
- Updates CMakeLists.txt files to use modern CMake practices with explicit configurations and target-specific definitions
- Modifies the qt_macro.cmake to work with the new CMake variable-based file management system
2025-07-25 10:38:48 +01:00
Pasukhin Dmitry
f41a5a91e4 Configuration, CMake - Flexible project root (#641)
- Replaces all `CMAKE_SOURCE_DIR` references with `OCCT_ROOT_DIR` across CMake files
- Updates build templates to use the new root directory variable
- Modifies environment variable configurations to use the flexible root path
2025-07-24 09:49:19 +01:00
Pasukhin Dmitry
6fb9ee594b Configuration - Add vcpkg layout support (#618)
- Addition of vcpkg layout configuration with CMake file placement in share/ directory for vcpkg compliance
- Introduction of OCCT_PROJECT_NAME parameter (defaults to "opencascade") for customizing directory structure in vcpkg layout
- Updated environment scripts and build templates to support vcpkg directory structure while maintaining backward compatibility
2025-07-22 21:12:11 +01:00
Pasukhin Dmitry
c0a6aee75d Testing - Migration PR actions to VCPKG-based (#587)
Update the default testing to use result of VCPKG.
The 3rd-party are stored in GitHub NuGet storage and reused.
The 3rd-party archive with installed 3rd-party added as an artefact
Updated the actions to work with VCPKG 3rd party
2025-07-06 14:35:22 +01:00
Pasukhin Dmitry
dfb331296c Configuration - VCPKG add TclTk support (#580)
Introduces a new "tcltk" feature in vcpkg.json with relevant dependencies.
Updates tcl portfiles and patches to incorporate Tk building, installation, and cleanup.
Modifies CMake and batch environment templates to align with the new TclTk support.
2025-06-25 10:15:04 +01:00
Pasukhin Dmitry
e668a0d228 Testing - Add a new compilation on Clang without PCH #540
Updated a main workflow to validate the header and more precise warnings.
No PCH helps to validate missed headers.
Fixed PCH issue for mac os
Extend the parameters for occt build action.
2025-05-17 21:08:49 +01:00
Pasukhin Dmitry
3e80fad177 Configuration - Update minimum version of C++ to 17 #537
Update C++ standard to C++17 in build configuration and documentation
2025-05-16 10:30:25 +01:00
Pasukhin Dmitry
469da02ca6 Configuration - Fixed pathes to 3rd-party in cmake configuration (#523)
Update target_link_libraries to use PUBLIC and PRIVATE visibility for dependencies.
Now all 3rd-party is hidden for the external linking, no more issues to invalid path to 3rd-party
2025-05-15 13:04:14 +01:00
Pasukhin Dmitry
be4f373d1d Coding - Bump version to 8.0.0-rc1 #497 2025-04-13 16:31:52 +01:00
Pasukhin Dmitry
05039a1cf9 Configuration - TBB configuration prioritization to release #496
Refactor TBB CMake configuration for checking configuration type.
The solution will be reorganized to math release/debug version.
Prepared only for the hot-fix reason.
2025-04-13 14:37:36 +01:00
luzpaz
a3595cb871 Documentation - Fix various typos found in codebase #495
Found via codespell
2025-04-12 15:02:50 +01:00
Pasukhin Dmitry
25b12541d7 Configuration - Re-Configuration time optimization #467
Refactor CMake files to hide redundant variables using mark_as_advanced.
The result - no re-find will be performed.
From 30s to 5s for second time reconfiguration stage.
2025-03-30 15:26:05 +01:00
Pasukhin Dmitry
876ccbe977 Configuration - Add support for Google Test framework in CMake #443
Enhance Google Test integration and add support for test projects.
Each Toolkit have GTests folder with place for new tests.
For adding new tests needs to extend FILES.cmake files in each GTests folder.
The single executable is created for each toolkit with all tests.
The tests grouped by module and toolkit with :: as separator.
Added option to download GTest by Cmake if not found.
Add GTest for PLib_JacobiPolynomial with comprehensive test cases
Add GTest for TCollection_AsciiString and TCollection_ExtendedString
Set C++ standard to C++14 for GTest compatibility if required
2025-03-24 08:58:02 +00:00
Pasukhin Dmitry
233fd2a31f Documentation - Convert module and toolkit names to lowercase for URL generation #460 2025-03-23 17:37:58 +00:00
Pasukhin Dmitry
c291a33d6d Documentation - Generation schema fixing #452
Enhance documentation generation by tracking unique module connections
Ensuring lowercase page IDs for toolkits and packages
2025-03-20 14:47:17 +00:00
Pasukhin Dmitry
9cd174509c Configuration - Resource generation source path fix #453
Fix header file path generation in OCCT resource macro.
Regression after reorganizing repository.
2025-03-20 13:09:23 +00:00
Pasukhin Dmitry
5647b46a34 Configuration - Reorganize repository structure #450
Reorganizing structure to have Module/TK/Package/FILES structure.
New structure reflect the structure inside IDE.
Migrate FILES, PACKAGES, EXTRLIB to CMake version to handle changes on updates.
No changes were done to installation layout, all installation result keep as before.
The migration was done using python script, see PR, which refactor automatically the structure.
Updated doc generation to have valid path to modules, toolkits and packages.
In case of PR into new version, IR-790 can be used as a target for the previous version.
2025-03-20 00:39:26 +00:00
Pasukhin Dmitry
606d652b41 Documentation - Migration to CMake from TCL #441
Remove OS folder with structure for refman generation.
Remove tcl scripts from adm folder which used only for doc generation
Migrate all the processes of doc generation to cmake (adm/cmake/occt_doc.cmake)
RefMan and Overview build from CMake as a new utility option, no TCL is needed.
2025-03-19 09:58:55 +00:00
Pasukhin Dmitry
df4b931988 Configuration - Resource structure reorganization #429
Reorganized resources to keep source part in src and real-time scripts in resource folder.
For the installation result no changes, still installed to src for windows.
2025-03-18 22:54:43 +00:00
Pasukhin Dmitry
99c7ce57c1 Coding - Migration of ExpToCas to own repository #442
New repository for ExpToCas: https://github.com/Open-Cascade-SAS/ExpToCas
Documentation and all build process are fully migrated.
2025-03-18 20:41:12 +00:00
Pasukhin Dmitry
c29c19bb0a Coding - Migration of Inspector to own repository #438
New repository for Inspector: https://github.com/Open-Cascade-SAS/Inspector
Documentation and all build process are fully migrated.
"tools" folder keep to share information for some time.
Keep building inspector as before to keep control of API changes via GitHub actions.
2025-03-18 19:25:03 +00:00
Pasukhin Dmitry
ddf81f2b93 Configuration - Remove -symbolic linker flag (#432)
Updated VCPKG workflow to follow the type of linking with the triplet.
Removed symbolic linker flag. As a result downgrade of performance.
The symbolic flag has high risk of instability, better to disable.
2025-03-12 22:18:44 +00:00
Pasukhin Dmitry
3840d19d7b Configuration - Enhance Qt5 directory detection for Windows #419
Update the detection Qt5 folder to search for bin folder.
That will affected for the starting DRAW or samples as a part of env.
2025-03-09 18:04:44 +00:00
Pasukhin Dmitry
478afa4eea Configuration - Checking for FILES content #424
Added checking for file in package or toolkit.
Removed not-existed files from the list
2025-03-08 22:48:09 +00:00
Pasukhin Dmitry
efc388a211 Configuration - Remove BUILD_PATCH option in CMake #418
Refactor CMake configuration to remove patch handling and simplify includes
2025-03-07 21:07:09 +00:00
Pasukhin Dmitry
811e6c7f0d Configuration - Update VTK optional components (#403)
Updated missed components leaded to the issue with VCPKG
2025-03-05 14:23:05 +00:00
Pasukhin Dmitry
72960352ed Configuration - Modify VTK 9x handling (#401) 2025-03-03 10:29:42 +00:00
Pasukhin Dmitry
de5406aabd Configuration - Extend CMake file filter regex (#400)
Fixed issue when folder name contains .c or .h as a part of the name.
2025-03-03 08:42:35 +00:00
Pasukhin Dmitry
2edfe536aa Configuration - Update file globbing and condition checks for installation paths (#399) 2025-03-02 23:57:42 +00:00
Pasukhin Dmitry
84334d8019 Configuration - Update VTK configuration and enable optional components (#395) 2025-03-02 20:41:56 +00:00
Pasukhin Dmitry
95d8c85c2b Coding - Bump version to 8.0.0.dev (#394)
New maintaining schema will be applied:
 maintenance stable release on top of minor (3 times per year).
   with binary compatible changes
   name - 7.9.1, 7.9.2, 7.9.3
 development fully-tested release based on master (every 5+- weeks)
    no binary compatible changes
    the latest features available the same as in master
    name - 8.0.0.rc1, 8.0.0.rc2, 8.0.0.rc3,...
the weekly branch IR still will be weekly and usually type of release will be "dev"
  of the next minor release. In current case "8.0.0".
2025-02-27 11:37:20 +00:00
Pasukhin Dmitry
858dd02fed Coding - Bump version to 7.9.0 stable release #380 2025-02-17 22:00:23 +00:00
jfa
0a73cac759 Configuration - CMake symbol isolation issue on Windows #373
Fixed Salome compilation problem on Windows by M.Bernhard
2025-02-17 12:52:41 +00:00
dpasukhi
87c04f1833 Coding - Bump version to 7.9.0.beta2 #359 2025-02-10 20:27:33 +00:00
luzpaz
7e3d063cae Documentation - Fix various typos found in codebase #350 2025-02-08 09:44:51 +00:00