Files
@ r24244:556df3f1e087
Branch filter:
Location: cpp/openttd-patchpack/source/os/debian/rules - annotation
r24244:556df3f1e087
2.2 KiB
text/plain
Add: introduce CMake for project management
CMake works on all our supported platforms, like MSVC, Mingw, GCC,
Clang, and many more. It allows for a single way of doing things,
so no longer we need shell scripts and vbs scripts to work on all
our supported platforms.
Additionally, CMake allows to generate project files for like MSVC,
KDevelop, etc.
This heavily reduces the lines of code we need to support multiple
platforms from a project perspective.
Addtiionally, this heavily improves our detection of libraries, etc.
CMake works on all our supported platforms, like MSVC, Mingw, GCC,
Clang, and many more. It allows for a single way of doing things,
so no longer we need shell scripts and vbs scripts to work on all
our supported platforms.
Additionally, CMake allows to generate project files for like MSVC,
KDevelop, etc.
This heavily reduces the lines of code we need to support multiple
platforms from a project perspective.
Addtiionally, this heavily improves our detection of libraries, etc.
r285:2ffed63dd1d5 r285:2ffed63dd1d5 r14576:72f72375ce46 r285:2ffed63dd1d5 r14576:72f72375ce46 r14576:72f72375ce46 r20929:c7e920a92fe2 r285:2ffed63dd1d5 r14576:72f72375ce46 r14576:72f72375ce46 r14576:72f72375ce46 r14576:72f72375ce46 r14576:72f72375ce46 r285:2ffed63dd1d5 r20929:c7e920a92fe2 r20929:c7e920a92fe2 r20929:c7e920a92fe2 r20929:c7e920a92fe2 r20929:c7e920a92fe2 r20929:c7e920a92fe2 r20929:c7e920a92fe2 r20929:c7e920a92fe2 r20929:c7e920a92fe2 r20929:c7e920a92fe2 r20929:c7e920a92fe2 r20929:c7e920a92fe2 r14576:72f72375ce46 r14576:72f72375ce46 r14576:72f72375ce46 r14576:72f72375ce46 r14576:72f72375ce46 r23900:0f7b41ce5747 r285:2ffed63dd1d5 r14576:72f72375ce46 r14576:72f72375ce46 r16330:464dbd0dd833 r285:2ffed63dd1d5 r14576:72f72375ce46 r14576:72f72375ce46 r14576:72f72375ce46 r14576:72f72375ce46 r285:2ffed63dd1d5 r14576:72f72375ce46 r14576:72f72375ce46 r14576:72f72375ce46 r14576:72f72375ce46 r15470:978daa48f04d r15470:978daa48f04d r15470:978daa48f04d r15470:978daa48f04d | #!/usr/bin/make -f
# -*- makefile -*-
# Makefile to build the openttd debian package.
# Use debhelper default for all targets (but some are overridden below).
%:
dh --parallel $@
DEB_HOST_GNU_TYPE=$(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
DEB_BUILD_GNU_TYPE=$(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
ifneq ($(DEB_HOST_GNU_TYPE),$(DEB_BUILD_GNU_TYPE))
CROSS= --build $(DEB_BUILD_GNU_TYPE) --host $(DEB_HOST_GNU_TYPE)
endif
# This prevents linking uselessly to libicudata and silences a warning
# in the build process.
DEB_LDFLAGS_MAINT_APPEND="-Wl,-as-needed"
# Enable all hardening options (since openttd offers a network-listening
# service that handles untrusted data).
DEB_BUILD_MAINT_OPTIONS=hardening=+all
# Load buildflags (this uses dpkg-buildflags). Note that we don't export
# them, but instead pass them to ./configure explicitly.
include /usr/share/dpkg/buildflags.mk
# Pass custom options to configure. Since it's not autoconf but a custom
# script, some of the option names are slightly different. We also need
# to be explicit about the dependencies, in case we're not running in a
# clean build root.
override_dh_auto_configure:
./configure $(CROSS) --prefix-dir=/usr --install-dir=debian/openttd --without-allegro --with-zlib --with-sdl --with-png --with-freetype --with-fontconfig --with-icu-sort --with-liblzo2 --with-lzma --without-xdg-basedir --without-iconv --disable-strip CFLAGS="$(CFLAGS) $(CPPFLAGS)" CXXFLAGS="$(CXXFLAGS) $(CPPFLAGS)" LDFLAGS="$(LDFLAGS)" CFLAGS_BUILD="$(CFLAGS) $(CPPFLAGS)" CXXFLAGS_BUILD="$(CXXFLAGS) $(CPPFLAGS)" LDFLAGS_BUILD="$(LDFLAGS)"
# Do some extra installation
override_dh_auto_install:
$(MAKE) install DO_NOT_INSTALL_CHANGELOG=1 DO_NOT_INSTALL_LICENSE=1
# Don't do testing. Because the OpenTTD Makefile always does dependency
# generation (even on invalid targets), dh_auto_test thinks there is a
# "test" target, while there isn't.
override_dh_auto_test:
# Call mrproper. Again, dh_auto_clean thinks there is a distclean
# target, while there isn't.
override_dh_auto_clean:
[ ! -f Makefile ] || $(MAKE) mrproper
# We want to strip the debug informatiton into the -dbg package.
override_dh_strip:
dh_strip --dbg-package=openttd-dbg
|