-
Notifications
You must be signed in to change notification settings - Fork 2
scratchpad
-
i8degrees/nomlib-builder:0.13.1-amd64
-
i8degrees/nomlib-builder:0.13.1-amd64-libs
- cleanup after each build, i.e.:
-
make distclean||make clean
-
- git clone git@github.com:i8degrees/nomlib.git
- download existing deps from nomlib.479831.xyz/frs -- common and osx
- extract to
third-party/commonandthird-party/osx mkdir build && cd buildcmake -DDEBUG=on -DDEBUG_ASSERT=on -DEXAMPLES=on -DNOM_BUILD_TESTS=off -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_INSTALL_PREFIX=$HOME/Library/Frameworks ..
x86_64-apple-darwin22.4-clang x86_64-apple-darwin22.4-clang++
cmake -S $(pwd) -B $(pwd)/build --preset build-debug-clang-cl
...
clang-cl
cmake -S $(pwd) -B $(pwd)/build --preset build-debug-clang-linux
cmake -S/app --preset debug-clang-linux
cmake --build /app/build/debug-clang-linux
cmake --build /app/build/debug-clang-linux --target help
cmake --build /app/build/debug-clang-linux --target device_infodocker run --rm -it -v /home/jeff/Projects/nomlib.git:/app
-v nomlib-libs:/app/vendor
i8degrees/nomlib-builder:0.13.1-amd64-macos
cmake -S/app -B/app/build.osx.test.2 -DFRAMEWORK=off -DEXAMPLES=on
-DNOM_BUILD_TESTS=off -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9
-DCMAKE_TOOLCHAIN_FILE=/app/cmake/toolchains/osxcross.cmake
-DNOMLIB_DEPS_DIR=/app/third-party/osx
-DSDL2_LIBRARY=/app/third-party/osx/SDL2.framework
-DSDL2_INCLUDE_DIR=/app/third-party/osx/SDL2.framework/Headers/
-DSDL2_IMAGE_LIBRARY=/app/third-party/osx/SDL2_image.framework/
-DSDL2_IMAGE_INCLUDE_DIR=/app/third-party/osx/SDL2_image.framework/Headers
-DSDL2_TTF_LIBRARY=/app/third-party/osx/SDL2_ttf.framework/
-DSDL2_TTF_INCLUDE_DIR=/app/third-party/osx/SDL2_ttf.framework/Headers
-DLIBROCKET_CORE_LIBRARY=/app/third-party/osx/librocket/lib/libRocketCore.1.dylib
-DLIBROCKET_CONTROLS_LIBRARY=/app/third-party/osx/librocket/lib/libRocketControls.1.dylib
-DLIBROCKET_DEBUGGER_LIBRARY=/app/third-party/osx/librocket/lib/libRocketDebugger.1.dylib
-DLIBROCKET_CORE_INCLUDE_DIR=/app/third-party/osx/librocket/include
-DLIBROCKET_CONTROLS_INCLUDE_DIR=/app/third-party/osx/librocket/include
-DLIBROCKET_DEBUGGER_INCLUDE_DIR=/app/third-party/osx/librocket/include
SDL2_IMAGE_INCLUDE_DIR:PATH=/usr/local/osxcross/target/macports/pkgs/opt/local/include/SDL2/SDL_image.h SDL2_IMAGE_LIBRARY:FILEPATH=/usr/local/osxcross/target/macports/pkgs/opt/local/lib/libSDL2_image-2.0.0.dylib SDL2_INCLUDE_DIR:PATH=/usr/local/osxcross/target/macports/pkgs/opt/local/include/SDL2 SDL2_LIBRARY:STRING=/usr/local/osxcross/target/macports/pkgs/opt/local/lib/libSDL2.dylib SDL2_TTF_INCLUDE_DIR:PATH=/usr/local/osxcross/target/macports/pkgs/opt/local/include/SDL2/SDL_ttf.h SDL2_TTF_LIBRARY:FILEPATH=/usr/local/osxcross/target/macports/pkgs/opt/local/lib/libSDL2_ttf-2.0.0.dylib
MacOSX11.1.sdk
NOMLIB_DEPS_DIR=$2 # script arg
# "$HOME/Projects/nomlib.git/third-party/vcpkg_vendor.zip"
BUILD_DIR=$1 # script arg
# ~/Projects/nomlib.git/build/debug/
mkdir $BUILD_DIR && cd $BUILD_DIR
bsdtar -xf ~/Projects/nomlib.git/third-party/vcpkg_vendor.zip --strip-components 1VCPKG_ROOT=/home/jeff/.local/share/vcpkg VCPKG_OVERLAY_PORTS=$VCPKG_ROOT/ports/librocket VCPKG_TARGET_TRIPLET=x64-linux CMAKE_TOOLCHAIN_FILE=/home/jeff/.local/share/vcpkg/scripts/buildsystems/vcpkg.cmake
- fix link errors by investigating the API (diff) for the two method calls:
/usr/bin/ld: CMakeFiles/libRocketDataGridTest.dir/datagrid/CardsPageDataSource.cpp.o: undefined reference to symbol '_ZN6Rocket8Controls10DataSource15NotifyRowChangeERKNS_4Core10StringBaseIcEE'
/usr/bin/ld: /home/jeff/Projects/nomlib.git/build/release/vcpkg_installed/x64-linux-dynamic/lib/libRocketControls.so.1: error adding symbols: DSO missing from command line
/usr/bin/ld: CMakeFiles/libRocketTest.dir/libRocketTest.cpp.o: undefined reference to symbol '_ZN6Rocket4Core7Element11SetPropertyERKNS0_10StringBaseIcEERKNS0_8PropertyE'
/usr/bin/ld: /home/jeff/Projects/nomlib.git/build/release/vcpkg_installed/x64-linux-dynamic/lib/libRocketCore.so.1: error adding symbols: DSO missing from command line-
investigate why libRocket is returning
customfor its version -
file bug for renderfont example, the given file path should be transformed into an absolute path, or we should append the current working directory to the path that is given;
- add
cwd.currentPath()to file path
- add
-
file bug for resolving ImageDiffTest errors due to resources path; add
+ "tests" + p.native()const std::string RESOURCES_PATH = cwd.currentPath() + p.native() + "Resources" + p.native() + "tests" + p.native() + "ImageDiffTest" + p.native();
-
We must rethink
nom::init()with the automatic current working directory path being set is what produces errors like the above and also seen innom_fontexe and likely others- The existing implementation is correct for when the executable is executed from within an isolated bundle, i.e.: MacOSX application or framework, or AppImage / Flatpak, but otherwise breaks for when the exe is operating within a global filesystem space such as when running from a terminal
cmake -S . --preset release-static cmake -S . --preset release-dynamic
cmake --build build/release-static --target all cmake --build build/release-dynamic --target all
cmake --install build/release-static
--component Runtime --component Development --component Documentation
--component Core
cmake --install build/release-dynamic
--component Runtime --component Development --component Documentation
--component Core
-
move unused cmake modules at
cmake/modules/toResources/CMakeor so -
remove
cmake/toolchains/vcpkg.cmake -
add
init_nom_cmdline_argsfunction using TCLAP (privately) -
add example with three cmdline args -- input & output filename and rescale algo (
hqxorscale2x) -- for rescaling an image -
pull latest
gamecontrollerdb.txtfrom db in aFetchContentcall insidevendor/CMakeLists.txtand add it toResources/SharedSupportfor redistribution -
add license to
licenses
-
wiki.git/patches/microtar.cmake -
wiki.git/patches/CPackConfig.cmake -
see if this accomplishes what we want!
X_VCPKG_APPLOCAL_DEPS_INSTALL=ON
-
macosxVCPKG_PREFER_SYSTEM_LIBS=ON -
we need to update our libRocket v1.3.0.1 fork by creating a patch that removes the
i386arch out ofOSX_ARCHITECTURESinBuild/CMakeLists.txt; we fail to build nomlib on our MacOSX buildbox when building libRocket as a dynamic shared library with thedebug-dynamic-osxcmake preset -
as part of theBUILD_DOCSoption, we should consider adding adding the documentation files of (at minimum)tclap -
file a bug report on our JSON serialization and de-serialization classes missing several top-level fields of
vcpkg.jsonthat can be seen in both the parsing output and when we save the output to a file --testme.json-- as of this writing -
append to the end of existing git sha
35f888a--
Thanks to our nom_jsonpp example, we caught a bug in the serialization of
an array value within an object when trying to parse the inventory.json test
file at Resources/tests/serializers/json/inventory.json.
build/debug-dyn/bin/nom_jsonpp build/debug-dyn/bin/inventory.json
ERROR: Could not serialize values; an array cannot exist within another array.
INFO: Stubbed function bool nom::JsonCppSerializer::write_object(const Value &, Json::Value &) const was called
ERROR: Could not serialize values; invalid object?
ERROR: Could not serialize the source object.-
patches/JsonCppSerializer.patch -
investigate why we do not see the unused param / function warnings on Linux whereas we do on MacOSX -- I believe that we must have the wrong CXX flag applied for this, or that some flag(s) are applied only under MacOSX?
-
consider adding the detected OS stamp for the platform when using the visual unit testing framework -- we could do this as a comment, or better yet, introduce a new field named
os_stampor such with an option for modifying it by the end-user -
update our library targets back to using the full semantic version for the
VERSIONtarget property -
update our unit test library targets back to using the full semantic version for the
VERSIONtarget property -
relocate library targets from
tests/CMakeLists.txttosrc-
tests/include->include/nomlib/tests -
tests/src/*->tests -
Resources/tests->tests/Resources
-