Generator expressions are the only way to distinguish between build
types in multi-configuration builds (Visual Studio).
This adds generator expressions for some of build type dependent
values as a starting point.
See a more detailed explanation at:
https://cmake.org/cmake/help/latest/manual/cmake-buildsystem.7.html#build-specification-with-generator-expressions
Notably:
> Some buildsystems generated by cmake(1) have a predetermined build-configuration set in the CMAKE_BUILD_TYPE variable. The buildsystem for the IDEs such as Visual Studio and Xcode are generated independent of the build-configuration, and the actual build configuration is not known until build-time. Therefore, code such as
>
> string(TOLOWER ${CMAKE_BUILD_TYPE} _type)
> if (_type STREQUAL debug)
> target_compile_definitions(exe1 PRIVATE DEBUG_BUILD)
> endif()
>
> may appear to work for Makefile Generators and Ninja generators, but is not portable to IDE generators.
1. Now that all the buildroots we need are open-source,
use defconfigs that ship with them instead of rolling our own.
2. New script: Packagaging/OpenDingux/build-all.sh
3. To avoid polluting top-level home directory, buildroot location
changed to `~/devilutionx-buildroot/$BUILDROOT_TARGET`.
4. Move OPK packaging script to its own file. This is to be able
to make a package for devilutionX in the buildroot itself.
I've recently done some massive updates to the buildroot, necessitating
some minor changes to the defconfig here.
Good news: The buildroot use GCC 5.4 and newer binutils, so it now
builds with LTO.
The cmake package in debian-stretch has recently been updated: https://packages.debian.org/stretch-backports/cmake
This new version of cmake depends on a version of libarchive13 that is only available in stretch-backports-sloppy.
To allow libarchive13 to be installed from stretch-backports-sloppy I've added the debian-stretch-sloppy "suite" and changed -t stretch-backports to -t 'stretch-backports*'.