openframeworks / apothecary

This is the OpenFrameworks library apothecary. It mixes formulas and potions to build and update the C/C++ lib dependencies.
Other
56 stars 51 forks source link

Emscripten WebAssembly Latest #395

Closed danoli3 closed 1 month ago

danoli3 commented 1 month ago

.wasm or .a or .o they all WebAssembly and should be handled at upload of package

danoli3 commented 1 month ago

FreeType compiling on my local, not sure what's the issue on the runner

danoli3 commented 1 month ago
 Now Building "freetype"
--------------------
configure: cmake .. -DCMAKE_C_STANDARD=17 -DCMAKE_CXX_STANDARD=23 -DCMAKE_CXX_STANDARD_REQUIRED=ON -DCMAKE_CXX_EXTENSIONS=OFF -DFT_DISABLE_ZLIB=FALSE -DFT_DISABLE_BZIP2=TRUE -DFT_REQUIRE_BZIP2=FALSE -DFT_DISABLE_HARFBUZZ=TRUE -D FT_REQUIRE_ZLIB=TRUE -D FT_REQUIRE_BZIP2=FALSE -D FT_REQUIRE_PNG=TRUE -D FT_REQUIRE_HARFBUZZ=FALSE -DCMAKE_INCLUDE_OUTPUT_DIRECTORY=include -DCMAKE_INSTALL_INCLUDEDIR=include -DFT_REQUIRE_BROTLI=FALSE -DFT_DISABLE_BROTLI=TRUE -G "Unix Makefiles" -DCMAKE_TOOLCHAIN_FILE=/emsdk/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake -DCMAKE_C_STANDARD=17 -DCMAKE_CXX_STANDARD=23 -DCMAKE_CXX_STANDARD_REQUIRED=ON "-DCMAKE_C_FLAGS=-DUSE_PTHREADS=1 -fPIC -std=c17 -fPIC -Wno-implicit-function-declaration -frtti -O3 -DMEMORY64 -I/src/out/zlib/include -I/src/out/libpng/include" -B . -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_INCLUDE_OUTPUT_DIRECTORY=include -DCMAKE_INSTALL_INCLUDEDIR=include -DCMAKE_C_STANDARD=17 -DCMAKE_CXX_STANDARD=23 -DCMAKE_CXX_STANDARD_REQUIRED=ON -DBUILD_SHARED_LIBS=OFF -DCMAKE_PREFIX_PATH=/src/out -DFT_REQUIRE_ZLIB=ON -DZLIB_ROOT=/src/out/zlib/ -DZLIB_INCLUDE_DIR=/src/out/zlib/include -DZLIB_INCLUDE_DIRS=/src/out/zlib/include -DZLIB_LIBRARY=/src/out/zlib/lib/emscripten/WASM/zlib.wasm -DFT_DISABLE_PNG=OFF -D FT_REQUIRE_PNG=ON -DPNG_FOUND=ON -DPNG_INCLUDE_DIR=/src/out/libpng/include -DPNG_LIBRARY=/src/out/libpng/lib/emscripten/WASM/libpng.wasm -DPNG_LIBRARIES=/src/out/libpng/lib/emscripten/WASM/libpng.wasm -DPNG_INCLUDE_DIR=/src/out/libpng/include -DPNG_INCLUDE_DIRS=/src/out/libpng/include -DPNG_PNG_INCLUDE_DIR=/src/out/libpng/include -DPNG_LIBRARY=/src/out/libpng/lib/emscripten/WASM/libpng.wasm -DPNG_ROOT=/src/out/libpng/ -DCMAKE_CROSSCOMPILING_EMULATOR=/emsdk/node/18.20.3_64bit/bin/node
-- Found PkgConfig: /usr/bin/pkg-config (found version "1.8.0") 
CMake Warning (dev) at CMakeLists.txt:264 (find_package):
  Policy CMP0074 is not set: find_package uses <PackageName>_ROOT variables.
  Run "cmake --help-policy CMP0074" for policy details.  Use the cmake_policy
  command to set the policy and suppress this warning.

  CMake variable PNG_ROOT is set to:

    /src/out/libpng/

  For compatibility, CMake is ignoring the variable.
This warning is for project developers.  Use -Wno-dev to suppress it.

CMake Warning (dev) at /usr/share/cmake-3.22/Modules/FindPNG.cmake:54 (find_package):
  Policy CMP0074 is not set: find_package uses <PackageName>_ROOT variables.
  Run "cmake --help-policy CMP0074" for policy details.  Use the cmake_policy
  command to set the policy and suppress this warning.

  CMake variable ZLIB_ROOT is set to:

    /src/out/zlib/

  For compatibility, CMake is ignoring the variable.
Call Stack (most recent call first):
  CMakeLists.txt:264 (find_package)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Found ZLIB: /src/out/zlib/lib/emscripten/WASM/zlib.wasm (found version "1.3.1") 
-- Found PNG: /src/out/libpng/lib/emscripten/WASM/libpng.wasm  
-- Looking for unistd.h
-- Looking for unistd.h - found
-- Looking for fcntl.h
-- Looking for fcntl.h - found
-- Configuring done
-- Generating done
-- Build files have been written to: /src/apothecary/build/freetype/build_emscripten_WASM

include not being triggered:

/src/apothecary/build/freetype/src/sfnt/pngshim.c:31:10: fatal error: 'png.h' file not found
   31 | #include <png.h>
      |          ^~~~~~~
1 error generated.
gmake[2]: *** [CMakeFiles/freetype.dir/build.make:572: CMakeFiles/freetype.dir/src/sfnt/sfnt.c.o] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:83: CMakeFiles/freetype.dir/all] Error 2
gmake: *** [Makefile:156: all] Error 2

 ^ Received errexit on line 429 /src/apothecary/formulas/freetype/freetype.sh
danoli3 commented 1 month ago

Okay it seems due to libpng being built and packaged within Emscripten (out of date and different flags), it is necessary to overwrite with install in order to fix the linking issues.

danoli3 commented 1 month ago

okay fingers crossed