Windows & Visual Studio build scripts#5
Conversation
…ld type is Clean or Rebuild.
…ild variant (for some reason error did not manifest itself until clean build)
…ble confusion when having both 32-bit and 64-bit Python installations side by side.
…s the static MSVC run-time option.
|
Hi, Many thanks again for your amazing contribution. Shall I wait for the additions you mentioned or just merge it in? My main comment would be that I am not a big fan of the binaries in the utils/ folder. But I don't think such considerations have to play a big role now. I think I will replace them with small python scripts some time after merging. What do you think of this idea? It should be fairly straightforward to emulate wget and 7z (for PKzip) in small python scripts, colored printing would be less straightforward unless a module like colorama is installed. Kind regards, |
|
I would like to get the effortless Debug/Release switching in and after that this should be good for merging. Can you take care of the CMakeLists.txt for IfcMax (which should be trivial probably) as I don't have 3ds Max available? After this I think the old manually maintained solution files should/could be removed for good. Ah yes, small Python scripts could be used to replace 7zip and wget, but if wanting to keep the build script fully automatized, how would we automatically install Python? PowerShell could be one option too. Or we could just ask the user to install Python manually as a prerequisite. For colored printing I'll see if I can find a non-executable replacement. If not, the whole coloring biz can be naturally omitted. EDIT: I might have found a batch file only replacement for cecho |
… so that it's available for "autonomic" run-cmake.bat runs.
|
Sure, I will take care of IfcMax. I think to install Python manually as a prerequisite isn't a big problem, after all the compiler needs to be there as well. |
…ibs + fix setting of PYTHON_INCLUDE_DIR + PYTHON_LIBRARY vars + small README.md cleanup.
…riable also in examples & qtviewer CMakeLists.txt
…tfix so that release and debug variants can co-exist in the same dir as is the default with OCE.
…owing effortless switching between IfcOpenShell debug and release builds.
…s for required features and continuing the build configuration, fail fast instead; user can easily disable the feature or fix the paths for the dependency.
…e main README.md.
|
Pending small cleanup (incl. text coloring biz rework) and after that I think this should be good for a merge! |
|
Wonderful :) |
…, fix Visual Studio download URL, rename IFCOS_NUM_BUILD_PROCESSES -> IFCOS_NUM_BUILD_PROCS
…g where.exe. Print instructions upon missing VS env vars or tools in PATH.
|
OK, all the issues/notes with the exception of OpenCOLLADA + libxml2 are now handled, I'll try rebuilding OpenCOLLADA from the scratch to see if I can repro this issue. Edit: OpenCOLLADA built successfully. Edit2: screenshots in the original post updated. |
|
Would you like to me to create a clean PR so that we could get rid of the unnecessary wget and cecho binaries in the history? |
|
OK, I think I found the reason why I don't have the LibXml2 problems you're having: You probably have your LibXml2 environment variables set and there are problems with arbitrary LibXml2 versions and OpenCOLLADA's current codebase? |
|
Not necessary to create a new PR / rewrite history. If the repo becomes bloated due to history we can git-filter-branch later. For example, the IFC models will probably also be separated into a different repo some time. I'll check the build log tomorrow, it's not my regular dev machine, so it's not immediately obvious where it would find a libxml somewhere, but never know for sure. |
|
Yep, you were right I don't understand how cmake is able to find this. Neither in FindLibXml2.cmake nor OpenCOLLADA/CMakeLists.txt I see easy ways to force cmake to stick the one that ships with OpenCOLLADA. Any ideas? |
|
Maybe make the script to set LIBXML2_LIBRARIES and LIBXML2_INCLUDE_DIR to empty before CMake for OpenCOLLADA to enforce that the embedded version of LibXml2 is used? And probably best to do the same for PCRE too. |
|
Yep, you're completely right. This works for me: |
|
OK, I'll add those. |
…ml2 and PCRE are used as there might be problems with arbitrary versions of the libraries.
|
OK, ready to go! I'll provide a new PR for possible further developments. |
Windows & Visual Studio build scripts
|
This is an amazing contribution. IfcOpenShell builds flawlessly. Thanks for all your efforts. |
|
Hmm, the formatting on the README.md's Compiling on Windows section seems a bit off. Edit: newlines before and after the cmd prompt biz section could maybe fix that. |
|
BTW which Windows and VS versions you tested these with? |
|
I tested with VS2015 CE on Windows 7. |
|
Hey, made a small change to your script. I observed that Also made some changes to CMake, but as far as my testing goes, that only affects *nix. Check out the *nix buildscript btw in case you're interested. |
|
Nice! BTW regarding Boost libs, |
Reorganised code, Boolean ops seem to work
NEW FEATURES: - Report generation for proximity analysis results - generate_proximity_report() for single groups - generate_proximity_report_for_all_groups() for batch processing - JSON export with severity categorization - Discipline breakdown and impact summaries TESTING: - 10 Tier 2 integration tests (full workflow validation) - 4 report generation tests - Total: 24 tests passing (100% coverage) - Execution: 0.26 seconds for entire suite BUGS FIXED (Autonomous): - Bug IfcOpenShell#5: Database connection leaks (7 instances fixed) - Bug IfcOpenShell#6: Missing Path import in resolution_engine.py - Bug IfcOpenShell#7: Relative import error in standalone context IMPROVEMENTS: - Connection management with context managers (prevent locks) - Fallback imports for standalone testing - Enhanced integration with existing workflow TEST IMPACT ON POST-PROCESSES: - Validates report generation can access persisted data - Ensures re-entrant operations don't crash workflows - Tests connection lifecycle for chained operations - Validates data structures for visualization/reporting VALIDATION: - 7/7 bugs auto-fixed (100% success rate) - 0 bugs in new code reached user - Integration tests would have caught Bug IfcOpenShell#4 scenario - All post-process workflows enabled and tested 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>


To-dos & known missing features:
Notes & Stuff for the future:
Summary:
This means all other dependencies and IfcOpenShell itself is built accordingly too.