All about multi-target, cross-platform build systems, and integration with GitLab CI on Synology NAS.
Debugging DLL, CMake, and Visual Studio 2019
One of the reasons why you want to use Visual Studio is because it has nice debugging interface. Support has been around for a while and now it is much easier to construct a cross-platform project using CMake. But if your project is like mine where you build a DLL
Filesystem Case Sensitivity
There may be many reasons why you must have filesystem that is case sensitive. For example, you are trying to run ct-ng build command and it fails under Windows WSL. Solution is to mount your filesystem with case sensitive enabled, or use per-directory control [https://devblogs.microsoft.com/commandline/per-directory-case-sensitivity-and-wsl/
Where Is My .lib?
Previously in another article [linking-libraries-on-windows] I tried to remember how to use shared libraries on Windows. Now I tried to build and ran into a minor obstacle. There in the build output directory is the .dll, but not .lib. Without it I can't use the library I just built. As
CMake Macros, Linking, and Other Notes
Previously I described using CMake for multi-platform builds [https://fzco.wackymango.net/cmake-for-multi-platform-builds/]; developing this kind of support makes CMake scripting more complex. To help manage this we can use macros and other techniques, described below. Macros You can write macros in CMake, store them in a directory with other
Linking Libraries on Windows
I have been working on making a cross-platform engine, and wanted to dynamically link against all libraries. I encountered the following warning: warning LNK4098: defaultlib 'msvcrt.lib' conflicts with use of other libs; use /NODEFAULTLIB:library That sent me down a rabbit hole to learn about linking under Windows. There
CMake for Multi-Platform Builds
I want to develop an engine that will run on Windows, OS X, and Linux. This means having a build system that will build binaries for all those platforms also. Cross-platform development of this sort means dealing with platform-specific libraries and toolchain. It requires branching within build scripts to deal
I have had to use many different kinds of build tools and found CMake [https://cmake.org/] as my favorite. Sure, there are other cross-platform tools like Automake [https://www.gnu.org/software/automake/], Gradle [http://gradle.org/], and qmake [http://doc.qt.io/qt-5/qmake-manual.html], but for me