Conversation
|
The directory restructuring looks good — centralizing thirdparty build logic into A few things this PR will need before it can close #366: dxflib symbol embedding (#366):
Warning suppression on bundled dxflib (#372): The bundled sources trigger a GCC false positive ( tinyscheme if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
target_compile_definitions(tinyscheme PRIVATE _GNU_SOURCE)
endif()MSVC if(MSVC)
target_compile_definitions(compilation-flags INTERFACE _USE_MATH_DEFINES)
endif()I'm closing #369 and #371 in favor of this restructuring — the fixes above cover what those PRs addressed. Happy to help if needed. |
|
I quickly looked up the I have added the |
140e7fd to
237c7e8
Compare
|
Makes sense — replacing One small thing: Everything else looks good after the squash. The OBJECT library for dxflib is the right call. Will watch for the Thanks for pushing this through — the thirdparty restructuring is a big improvement. |
Following directories got included from start: * tinyscheme * dxflib Then realized that support files for gettext et al was in several places. So extracted out the thirdparty of gettext support which is used in gerbv. Reasoning; There seems to be some files that usually should be, but isn't, bundled with the Intl support which is added as copied in from somewhere. It is just two header files, one which have the generic name of common.h. Switched to use only the bundled DXF lib. That gives the same path and code for all platforms.
Root cause: macOS filesystems are case-insensitive by default. When compiling with -std=c++2b (C++23), system headers like <limits> include <version> (the C++20 feature-test header). Clang searched -Ithirdparty/dxflib first and found thirdparty/dxflib/VERSION — which matched version on the case-insensitive filesystem — instead of the real <version> standard header. On Linux the case-sensitive filesystem meant VERSION ≠ version, so it worked fine. Fix: Renamed thirdparty/dxflib/VERSION → thirdparty/dxflib/GERBV_PATCHES. Also renamed a similar file in the tinyscheme directory.
237c7e8 to
6b8a361
Compare
… it is compiled in @rampageservices noticed that when I merged in PR #374 all DXF support disappeared since I also removed the flag. So this is to remove all the checks if DXF is compiled in or not.
Update for CMake which is more best practices on how to include third party packages in
CMake, see my description in #373 .This will be set in Draft mode until it has been tested and cleaned up a bit. There are probably naming that is broken, commented out code, and pure errors/bugs/omissions in this.
Comments and suggestions are welcome.
Closes #373