As an update to my question, I'd like to add that I now found out that apparently emcmake ignores or forgets all environment variables set within the shell, unless you specifically specify them on the emcmake command line, again! Armed with this knowledge, I was able to build FreeType and then Opencascade. However, I still run into same the problem when trying to build the webGL sample: for some reason, even passing the environment variables to the FreeType dirs doesn't help. Maybe other variables are needed here, but it's impossible to figure out what is missing.
I should point out that I haven't worked with *ix and makefiles for 30 years, and although I got plenty of advice from colleagues, it's still possible I did not execute the build and install commands as expected by emscripten. If someone could post the exact commands needed to build and install a package with emscripten using the ubuntu bash shell (inside a Docker environment), that could be very helpful - maybe that would help me create the missing .cmake files?
On Wednesday, 9 February 2022 at 10:29:55 UTC+1 Stefan Lang wrote:HelloMy goal is to build the OpenCascade webGL sample on Windows. Its description suggests installing and using emscripten to build the webAssembly. I've installed the latest version following the instructions, and I could build and run the provided mini examples just fine.I am having trouble using emcmake to build FreeType and OpenCascade statically on Windows. The main issue is that emcmake insists on finding a file calledfreetypeConfig.cmake or
freetype-config.cmakeBut these files don't exist. And if I can resolve this, I may run into the same issue with OpenCascade which likewise doesn't provide any *config.cmake files.cmake itself doesn't have this problem when I set freetype_DIR (as suggested on the OpenCascade Forums), but apparently emcmake ignores this.I have already posted this at Opencascade forums, but there are already various threads on this topic, and none of the suggestions seem to have any effect when using emcmake.I should mention that Opencascade refers to an old version of FreeType (2.5.5), but neither this nor the most current version (2.11.1) can be built using emcmake!I have installed the latest version of emscripten, running Windows 10. I would provide more info but I have tried so many different things and changed so many parameters that I've lost track, and indeed may need to set up everything from scratch again to make sure I haven't introduced side effects. (Besides, I will eventually need to install from scratch again on the other devs' machines)Therefore my first question to ask is: what version of emscripten should I use for Windows (and how can I query the currently installed version?), and is there anything I specifically need to do beyond the descriptions provided on the website with regard to Windows?Second question: I've already spotted various threads dealing with building freetype. But as far as I can tell, most if not all were related to building on Linux. Is there anything specific I need to watch out for when building FreeType on Windows?Lastly: can I force emcmake not to search for the *config.cmake files? Alternately, is there any recommended way how to create them on Windows? In short: How can I build FreeType with emcmake on Windows when there's no *config.cmake file?Thanks for reading this far,Stefan
--
You received this message because you are subscribed to the Google Groups "emscripten-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to emscripten-disc...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/emscripten-discuss/6155e79a-58d7-499a-826c-d9604093e465n%40googlegroups.com.
Can you say what you mean by "emcmake ignores or forgets all environment variables set within the shell,"? emcmake should behave identically to cmake itself.. its really just a very small wrapper around cmake. If you notice any differences between the way cmake honors environment variables and the way emcmake does please open bug on the issue tracker.
I should point out that I haven't worked with *ix and makefiles for 30 years, and although I got plenty of advice from colleagues, it's still possible I did not execute the build and install commands as expected by emscripten. If someone could post the exact commands needed to build and install a package with emscripten using the ubuntu bash shell (inside a Docker environment), that could be very helpful - maybe that would help me create the missing .cmake files?Unfortunately there are many ways to build and consume libraries (and header files) so there is no one answer (e.g. pkg-config, autoconf, cmake, all do things differently). One simple option is to create your own install directory (like a mini sysroot) where you install all your libraries and headers (via `make install` or some other method) and then you can pass `-I/path/to/my/headers` and `-L/path/to/my/libraries` to emcc. Alternatively, you can install directly into the emscripten sysroot which lives (by default) in `<emscripten_dir>/cache/sysroot`, in which case they should be available without any extra `-I` or `-L` arguments. Another option is to use something like `vcpkg` which has (at least some) support for emscripten already: https://vcpkg.io/en/index.html. For what its worth, I am hoping to simplify, improve and document the situation regarding installing and consuming libraries.