Commit Graph

368 Commits

Author SHA1 Message Date
Aaron van Geffen 56250b43ab Use `git describe` to express version in terms of closest tag. 2018-06-12 00:25:04 +02:00
Michał Janiszewski 1d28826b79 Fix -Wdocumentation and add it to default warnings 2018-06-11 09:52:54 +02:00
Aaron van Geffen 3ac32fc433 Add -Wrange-loop-analysis flag to CMakeLists as well. (#7646) 2018-06-10 10:08:35 +02:00
Michał Janiszewski e0dd51cc5d Add -Wlogical-op compiler warning 2018-06-06 22:31:23 +02:00
Michał Janiszewski 320eee0d59
Fix -Wunreachable-code-break and add it to deafult warnings (#7634) 2018-06-06 22:30:21 +02:00
Hielke Morsink 88e9a37d78 Add warning to cmakelist 2018-06-05 15:03:20 +02:00
Michał Janiszewski 7adc3d41a0 Restore the unused-function warning 2018-06-03 19:56:11 +02:00
Michał Janiszewski 545e3c1f85 Reduce verbosity of unpacking (pre)cached downloads 2018-05-30 00:03:53 +02:00
Michael Steenbeek b371087e47
Update objects version to v1.0.2 2018-05-16 14:54:15 +02:00
Gymnasiast d82414dbe9 Update objects to version 1.0.1 2018-04-30 20:34:52 +02:00
Ted John deaa60f8f1 Refactor string conversion between RCT2 and UTF8
Use Win32 API for conversion on Windows for non-1252 code pages instead of built-in tables.
2018-04-18 13:16:20 +02:00
Ted John 0ea81d7df4 Enable warnings as errors 2018-04-14 17:50:32 +01:00
Ted John b8d8d24d21 Get cmake working with msvc for basic game 2018-04-12 23:07:18 +01:00
Michael Steenbeek f98aae12f1 Fix building g2.dat if the path contains spaces/apostrophes (#7388) 2018-04-08 12:25:54 +01:00
Duncan 0ab3d0955c
Merge pull request #7310 from OpenRCT2/json-objects
Add support for new JSON object format
2018-04-08 10:45:55 +01:00
Michał Janiszewski 66d1fa2bc8 Fix MinGW header checks 2018-03-31 23:48:15 +02:00
Ted John bc5f253ce2 Update objects to latest v1.0 2018-03-29 17:56:03 +01:00
Ted John b163064f6c Update objects to v1.0 2018-03-28 23:15:32 +01:00
Ted John 0779859d2b Do not download objects if they already exist 2018-03-28 22:26:13 +01:00
Ted John 0c03fe4dc5 Update objects to v1.0-beta.4 2018-03-27 22:06:16 +01:00
Ted John 046199c660 Update objects download version to v1.0-beta.3 2018-03-26 21:38:10 +02:00
Ted John c465b35037 Download and distribute objects 2018-03-26 21:38:09 +02:00
Aaron van Geffen 9e95488d63 Update title sequence to v0.1.2 release. 2018-03-18 21:04:31 +01:00
Michał Janiszewski ec79334e0c Allow caching title sequences in data/ 2018-02-16 15:34:28 +01:00
Michał Janiszewski 72b54fa2b1 Allow (pre)caching title sequences 2018-02-16 10:04:38 +01:00
Michał Janiszewski da9502ae46 Disable discord's examples to fix 32 bit builds 2018-02-15 23:51:49 +01:00
Michał Janiszewski 6eeda1ec77 Perform more cleanup of CMakeLists.txt files
This moves setting of compilation flags to common file to be used by all
subprojects and explicitly enables only C++ support, skipping whole C
support in CMake.
2018-02-15 23:51:49 +01:00
Michał Janiszewski 8e3a271fb4 Remove support for C code from CMake 2018-02-15 23:51:49 +01:00
Michał Janiszewski 54394d3a21 Enable SSE4.1 for file implementing it 2018-01-01 23:49:09 +01:00
Michał Janiszewski ad687a7ecf Remove use of problematic __DATE__ and __TIME__
Replace with a placeholder to be filled by external tools
2017-12-27 14:50:42 +01:00
Ted John ebf43c2529 Fix testpaint 2017-12-04 19:04:07 +00:00
Ted John 99d7aaa2d6 Remove RCT2 interop 2017-12-04 19:04:06 +00:00
Stefan Winkler 516c5737be Set branch/sha1 defines only for specific files 2017-12-01 21:05:44 +01:00
Michał Janiszewski 3df5dd8391
More compiler warnings 2017-11-27 23:52:17 +01:00
Michał Janiszewski 63e246938f Make sure PORTABLE option is honoured globally 2017-11-16 23:08:03 +01:00
Michał Janiszewski 0f3b6b1590 Explicitly mention the expected root directory for discord-rpc
[ci skip]
2017-11-15 22:39:47 +01:00
Michał Janiszewski 8ec5f3ae82 Move FORCE32 option to top-level CMakeLists.txt 2017-11-15 22:32:51 +01:00
Michał Janiszewski 8f50660ad6 Use proper paths for discord-rpc in cmake 2017-11-15 22:32:51 +01:00
Michał Janiszewski 7612c2881d Add some discord-rpc logging to cmake 2017-11-15 22:32:51 +01:00
Michał Janiszewski 8f3434d084 Add discord-rpc support to Linux 2017-11-15 22:32:51 +01:00
Philip Goto 27e3703fec Add openrct2 URI handling to Linux 2017-11-08 16:14:01 +01:00
Robert Jordan 167662f651 Improvement: more icon resolutions 2017-10-13 22:39:08 +02:00
Michał Janiszewski a4c8d402ad Add missing variable declarations warning for C++ 2017-10-10 22:26:35 +02:00
Michał Janiszewski c4538496c5 Make sure variables are either static or declared externally 2017-10-09 22:59:40 +02:00
Matthias Mailänder c4abbc1167 Associate .sc4 and .sc6 scenarios with OpenRCT2 on Linux. 2017-08-14 09:33:37 +02:00
Matthias Mailänder c86dc803bb Associate .sv4 and .sv6 savegames with OpenRCT2 on Linux. 2017-08-14 09:33:37 +02:00
Matthias Mailänder cb2b764f07 Add an appdata.xml metadata file
for Linux software galleries.
2017-08-13 23:31:10 +02:00
Michał Janiszewski 1df22c889d Update minimum required CMake version to 3.1 2017-08-09 23:30:18 +02:00
Michał Janiszewski d2ec1f0057 Fix CMakeLists.txt to allow static libopenrct2
This allows using CMake-standard `BUILD_SHARED_LIBS` flag to dynamically
set how libopenrct2 should be built.

`cmake -DBUILD_SHARED_LIBS=OFF` will result in `openrct2` statically
linked with `libopenrct2`

Fixes #5918.
2017-08-09 23:30:18 +02:00
Hendrik v. Raven ddd50214bb drop man page compression
It is easier to add the compression manually when desired as to remove
it in all other cases.
2017-07-28 11:20:31 +02:00
Hendrik v. Raven 8438647705 add a project definition
the project definition is used by cmake to fill the subfolder for
${CMAKE_INSTALL_DOCDIR}.
2017-07-28 11:20:31 +02:00
Hendrik v. Raven c81f41c843 convert install destinations to GNUInstallDirs
at least on Linux this makes the build system easily adaptable to the
different distributions. GNUInstallDirs was added in cmake 2.8 so the
version is increades as well.
Testing on all other platforms is necessary, I have only a Linux system
at hand right now.
2017-07-28 11:20:31 +02:00
Matthias Mailänder 3ac5a6897c Add $LIB_SUFFIX to install into right directory (#5915) 2017-07-20 15:41:13 +02:00
Michał Janiszewski 1aed331928 Install openrct2-cli, if exists 2017-07-13 23:22:20 +02:00
Ted John 3545d2d635 Update to 0.1.0 title sequence 2017-07-07 17:35:33 +01:00
Ted John acf3b0cf83 Only include FindPkgConfig once 2017-06-25 14:28:25 +01:00
Michał Janiszewski 61cca38bee Add -Wnon-virtual-dtor warning 2017-06-15 00:26:31 +02:00
Michał Janiszewski 4851a45a83 Detect warnings for all parts of compilation (#5618) 2017-06-15 00:08:41 +02:00
Matthias Mailänder 889b81e070 Make title sequence download optional 2017-06-06 14:29:34 +02:00
Graham Edgecombe 9bd4284733 Fix icon install destination
RENAME was included in the quotes in a previous commit, so cmake treated
it as part of the destination path.
2017-06-03 12:54:00 +02:00
Ted John 85652c3834 Update cmake script to install man pages 2017-06-01 18:45:40 +01:00
Ted John 1e550e9059 Create portable builds
Which set rpath to $ORIGIN so it can be run out the box.
2017-05-31 08:51:51 +01:00
Michał Janiszewski de9adf5445 Allow building headless version as a separate target 2017-05-29 22:39:19 +02:00
Richard Jenkins 7a59eef47e Fix cmake for OpenRCT2-UI on macOS 2017-05-29 22:38:46 +02:00
Ted John 3ebf5be3ea Fix mingw cmake 2017-05-29 22:38:46 +02:00
Ted John c394a997c8 Update install target and export library so 2017-05-29 22:38:45 +02:00
Ted John 82288f92e6 Add cmake for testpaint 2017-05-29 22:38:44 +02:00
Ted John a4c06020f1 Add install target to cmake 2017-05-29 22:38:44 +02:00
Ted John 1f8f354e49 Update root cmake and enable tests 2017-05-29 22:38:44 +02:00
X123M3-256 dbd0067091 Remove logging 2017-05-07 01:01:07 +01:00
X123M3-256 edd830293c Correct path to sprite file 2017-05-07 01:01:07 +01:00
Michał Janiszewski c9eb2bdf77 Update version information in CMakeLists.txt 2017-05-06 20:43:54 +02:00
Ted John b8931bd503 Use C++ mutex instead of SDL for server_list.cpp 2017-05-04 17:29:05 +01:00
Michał Janiszewski da0cadf270 Disable redundant-decls error for mingw 2017-04-16 08:44:37 +02:00
Marijn van der Werf c7115273da Allow some warnings on macOS builds 2017-04-07 22:10:14 +02:00
Michał Janiszewski 2dcf33bd42 Ensure set_format_body macro only accepts properly sized arguments 2017-02-16 16:50:35 +01:00
Michał Janiszewski e09fb6533f Update C++ standard version to C++14 2017-02-06 23:24:55 +01:00
Michał Janiszewski 39f881e1d7 Update CMakeLists.txt for CPack with 0.0.7 version 2017-01-30 13:54:13 +01:00
Michał Janiszewski d9f9fcd41a Fix build names for Travis builds 2017-01-29 23:29:28 +00:00
Ted John a7edba27aa Enable light FX in builds 2017-01-21 12:02:41 +00:00
Michał Janiszewski 77a0c141a7 Merge pull request #5044 from janisozaur/ninja
Add BUILD_BYPRODUCTS entries to CMakeLists for googletest
2017-01-16 09:38:58 +01:00
Michał Janiszewski f4eb156c7a Only enable some of compiler warnings when they are supported
ICC does not support all of the new flags
2017-01-13 12:56:33 +01:00
Michał Janiszewski 68b484464a Make GCC warn about duplicated condition 2017-01-13 11:44:14 +01:00
Michał Janiszewski 411d1fff18 Make GCC suggest final, override keywords 2017-01-13 11:44:14 +01:00
Michał Janiszewski 7d7285cdaa Add more Warnings to CMakeLists 2017-01-13 11:44:14 +01:00
Michał Janiszewski d45337464f Include libzip as system library to fix issues in MinGW build 2017-01-13 10:02:18 +01:00
Michał Janiszewski dc8aff6274 Extend warning list for CMake 2017-01-13 10:02:17 +01:00
Michał Janiszewski cf670deb10 Add -Wshadow to CMakeLists and fix offenders 2017-01-13 10:02:17 +01:00
Marijn van der Werf 2d55c3e940 Only link segments with targets that require them 2017-01-12 13:24:09 +01:00
Michał Janiszewski 9aadf6ce42 Fix #5050 Increase required jansson version to 2.5 2017-01-11 22:02:25 +01:00
Ted John 7ca5857307 Isolate cmake sources to openrct2 2017-01-10 17:29:56 +00:00
Ted John 9387891ad3 Convert tabs to spaces 2017-01-10 17:29:56 +00:00
Michał Janiszewski bd140e78fb Compile fixes for MinGW (#4998)
* Fix mismatched condition in CMakeLists.txt

* Fix MinGW release builds
2017-01-06 07:04:25 +01:00
Marijn van der Werf 24a0405345 Update testpaint 2017-01-04 18:28:40 +00:00
Michał Janiszewski fa51d15c34 Remove fontconfig from TTF-less configuration 2017-01-04 16:09:53 +01:00
Michał Janiszewski 34b8c2034e Allow building without SDL2_ttf 2017-01-04 13:51:49 +01:00
Michał Janiszewski da8964efab Fix CMake warnings about mismatched conditions 2016-12-28 15:44:38 +01:00
David CARLIER 1d17725592 Add FreeBSD support
At the moment the platform specific code supports only
FreeBSD as OpenBSD and NetBSD does not support the
full path retrieval for an executable, we intentionally
stop the compilation for those platforms.
2016-12-28 14:18:04 +01:00
Michał Janiszewski c44c93a627 Fix typo in CMakeLists.txt 2016-12-23 00:26:14 +01:00
Graham Edgecombe f4f2bb97f8 Obey DESTDIR during title sequence installation (#4899)
The $ is escaped to delay evaluation of DESTDIR until runtime. It's
typically only specified when `make install` runs - not during the cmake
invocation itself.
2016-12-20 23:00:28 +01:00
Ted John d1a97cc021 Merge pull request #4887 from IntelOrca/use-external-title-sequences
Use external title sequences repository
2016-12-20 12:38:52 +00:00
Michał Janiszewski d197383dcf Download and extract title sequence in `make install` 2016-12-19 23:31:53 +00:00
Michał Janiszewski 02ac8fdcee Add version check for libzip in CMakeLists.txt 2016-12-17 00:04:40 +01:00
Michał Janiszewski ed7dbb2dbf Make CMake require and link libzip 2016-12-16 01:25:02 +00:00
Michał Janiszewski cae3f776f3 Run tests on travis 2016-12-01 16:03:27 +01:00
Michał Janiszewski 33749ccfbe Lower jansson version requirement to 2.3 for CMake/Debian builds (#4778)
We still need at least 2.3 for `json_object_foreach`
2016-11-09 12:57:06 +01:00
Max Sandholm a29bf9912b Install desktop entry and icons 2016-10-28 12:33:37 +02:00
Michał Janiszewski 03bd98f395 Remove special cases for Launchpad builds 2016-10-22 22:25:30 +02:00
Michał Janiszewski b1ec40f531 Use -Wno-error=date-time only when compiler supports it 2016-10-22 22:24:19 +02:00
Michał Janiszewski c70639302c Add convenience functions to CMakeLists.txt
The helper functions allow setting compiler flags only if compiler
supports them.
2016-10-22 22:20:37 +02:00
Michał Janiszewski f76c7d794c Make DISABLE_RCT2 imply FORCE32 2016-10-16 00:24:12 +02:00
Michał Janiszewski 53ee6c2e28 Update CMake configuration to produce native, NO_RCT2 builds by default 2016-10-16 00:24:11 +02:00
Marijn van der Werf d270b2dcb0 Allow unused variables during testing 2016-10-15 13:55:22 +02:00
Michał Janiszewski 599a1cfbcb Make sure MinGW knows about "%zu" format specifier 2016-10-09 22:43:07 +02:00
Michał Janiszewski b2e21a0e02 Enable -Wall for CMake targets (with few exceptions)
Warnings excluded from -Wall:
* -Wno-unknown-pragmas
* -Wno-unused-function
* -Wno-missing-braces
* -Wno-comment
2016-10-09 22:41:17 +02:00
Marijn van der Werf a27cebd973 Convert more occurences of osx to macos 2016-10-03 16:12:04 +02:00
Marijn van der Werf 065e23cc56 Update CMake target 2016-10-01 00:15:21 +02:00
Michał Janiszewski c4a97af854 Rework CMakeLists.txt for newly standalone target (#4451) 2016-09-19 21:23:10 +02:00
Marijn van der Werf 4e4a07d1b0 Update testpaint to match develop 2016-09-16 19:45:07 +02:00
Marijn van der Werf eb39f3fa1c Only add testpaint on unix for standard builds 2016-09-16 19:44:47 +02:00
Michał Janiszewski f354c0ec3f Fix testpaint target for Linux 2016-09-16 19:44:45 +02:00
Marijn van der Werf df202d86a6 Change folder structure 2016-09-16 19:44:40 +02:00
Marijn van der Werf 51d8d3ace3 Don’t build test target by default 2016-09-16 19:44:24 +02:00
Marijn van der Werf 5a44deac1b Add dependency to segfiles 2016-09-16 19:44:18 +02:00
Marijn van der Werf b0a43861e4 Always use GTest output 2016-09-16 19:44:14 +02:00
Marijn van der Werf efc306b2af Don’t use google-test 2016-09-16 19:44:11 +02:00
Marijn van der Werf 6b525f5d6f Update to googletest 1.8 2016-09-16 19:44:10 +02:00
Marijn van der Werf 576e314f61 Fix Cmake project 2016-09-16 19:44:08 +02:00
Marijn van der Werf 0cb3a05f5d Include google test for cmake 2016-09-16 19:43:28 +02:00
Marijn van der Werf 1b1b26aeb8 Hack cmakelists to compile test project 2016-09-16 19:43:00 +02:00
Michał Janiszewski b0a8fb0a7c Enable more warnings for CMake 2016-09-11 11:20:39 +01:00
Michał Janiszewski 3c2569dbea Add -Wnon-virtual-dtor to CMakeLists.txt 2016-09-10 22:00:35 +02:00
Marijn van der Werf d1801f860b Fix CMake builds on macOS (#4398) 2016-09-10 17:30:07 +02:00
Michał Janiszewski 27799bc187 Remove unnecessary compiler options 2016-09-04 17:29:43 +02:00
Michał Janiszewski 47e343a88d Fix PIC options for mingw 2016-09-04 17:27:53 +02:00
Michał Janiszewski cdc447e92a Refactor compiler flags in CMakeLists.txt 2016-09-04 17:27:53 +02:00
Michał Janiszewski f6e9216b7d Use PIC/pie flags to satisfy Launchpad 2016-09-04 17:27:53 +02:00
Michał Janiszewski 4481859898 Fix Launchpad builds 2016-09-04 17:27:53 +02:00
Michał Janiszewski d9274ffd82 Enable all warnings as errors for 64 bit builds (cmake) 2016-09-04 12:16:09 +00:00
Michael Steenbeek fe8f14be58 Fix cmake in directories with apostrophes (#4366) 2016-09-02 18:18:59 +00:00
Michał Janiszewski 645bb44eb4 Minor fixes to 64 bit builds 2016-08-08 23:06:10 +01:00
Aaron van Geffen 95ef81b4c8 CMake: split OpenGL check for macOS and Linux.
The GL check doesn't work nicely with macOS, while find_package doesn't work well with multiarch on Ubuntu.
2016-08-08 07:25:22 +02:00
Michał Janiszewski 7e5102dd6f mmap data segment to arbitrary location 2016-08-08 07:25:22 +02:00
LRFLEW 69404bd394 Fix OpenSSL CMake Dependency on macOS 2016-08-08 07:25:22 +02:00
Michał Janiszewski 2e319c4dd6 Fix CMake flags setup 2016-08-01 23:14:42 +02:00
Aaron van Geffen 24fde98837 Define Git variables for CMake. 2016-07-31 17:32:33 +02:00
Michał Janiszewski 550ac03ab7 Enforce proper declarations for every function
Enables -Wmissing-declarations for CMake projects
2016-07-14 14:11:50 +02:00
Michał Janiszewski f82b4b4425 Add -Wundef to CMake-based builds
Verifies all the defines are checked properly
2016-07-09 10:06:09 +02:00
Michał Janiszewski 9240280005 Only disable optimisations when using RCT2 segments (#4007) 2016-07-09 09:57:29 +02:00
Michał Janiszewski cdab4bc0fd Add CMake target not using RCT2, use it for linux64 job 2016-06-16 11:37:52 +02:00
Michał Janiszewski 0ac5c3698b Fix CMake projects, restore testing with OpenGL disabled 2016-06-12 18:49:26 +02:00
Michał Janiszewski 39472ce3f3 Update CMake targets with OpenGL linking (#17) 2016-06-08 13:28:33 +01:00
Michał Janiszewski f8fa637b68 Require OpenSSL in all but network-less builds (#3829) 2016-06-05 21:57:28 +01:00
Michał Janiszewski a79e793e67 Disable whole-project alignment for MSVC & MinGW (#3807)
As OpenRCT2/OpenRCT2#3783 has now been merged, this should be
unnecessary.
2016-06-03 19:07:52 +01:00
LRFLEW 859d861f14 Fix CMake OS X Build (#12) 2016-06-01 22:35:58 +02:00
Michał Janiszewski 778de4e285 Explicitly require OpenSSL>=1.0.0
This is to make sure CMake won't try using OS X's stale version of SSL
2016-06-01 22:23:20 +02:00
Michał Janiszewski 1c459c8186 Add NetworkKey class 2016-05-27 20:28:33 +02:00
Michał Janiszewski 0ddf5ea4c5 Turn on -Werror for all warnings (#3716)
Exclude int-to-pointer-cast and pointer-to-int-cast for 64 bit builds
for now.
2016-05-23 21:28:59 +01:00
janisozaur e28d6634fd Allow builds without -fno-omit-frame-pointer (#3554)
Disables optimizations done to addresses.c, so frame pointer doesn't
have to be kept, allowing for more aggressive optimizations to be done.
2016-05-09 20:24:37 +01:00
Michał Janiszewski b30bab65d8 Add experimental build job for x86-64
This is **build job only**. It does not work yet.
2016-04-26 22:35:47 +02:00
janisozaur e7eae9aff2 Fix clang optimized builds (#3336)
This apparently applies to non-Apple clang only.

When passed any optimization level other than 0, clang took liberty and
re-organised arguments passed to `RCT2_CALL*`, even in presence of
attributes put in place to prevent that: optnone,noinline.

This change allows easier project setup. It was previously possible to
produce a clang optimized build by manually recompiling and relinking
addresses.c.o.
2016-04-18 14:31:38 +01:00
Michał Janiszewski da80a691bc Start 0.0.5
changelog.txt not updated yet
2016-04-13 14:20:40 +02:00
Michał Janiszewski e28de49a34 Breakpad integration
Provide your own breakpad and point cmake at it.

git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
mkdir breakpad && cd breakpad
../depot_tools/fetch breakpad # edit the script to use python2
cd src
LDFLAGS="-m32" CXXFLAGS="-m32" CFLAGS="-m32" CPPFLAGS="-m32" ./configure
LDFLAGS="-m32" CXXFLAGS="-m32" CFLAGS="-m32" CPPFLAGS="-m32" make -j 8

Run cmake on openrct2:
cd openrct2
vim CMakeLists.txt # provide your path to breakpad
mkdir build && cd build
cmake ../ -DWITH_BREAKPAD=ON
make -j 8
./openrct2 # open a game, select "about openrct2", crash
2016-04-09 18:57:14 +02:00
Michał Janiszewski 5fe2623613 Prefer libpng1.6 over libpng1.2 if available 2016-04-02 00:52:53 +02:00
Michał Janiszewski f372666d30 Lower libpng requirement to 1.2 2016-04-02 00:52:53 +02:00
Ted John d2cc88099e Merge pull request #3188 from janisozaur/headers-cmake
Add headers to CmakeLists.txt
2016-03-27 22:44:37 +01:00
Michał Janiszewski 2b790e1b5a Add guard to prevent from building in-source 2016-03-27 23:29:45 +02:00
Michał Janiszewski 8de2310d63 Add headers to CmakeLists.txt
This doesn't really affect compilation in any way, but allows
CMake-based project generators to include the header files as well.

Previously headers without accompanying source files (like version.h)
were skipped when generating project files.
2016-03-27 22:22:58 +02:00
Michał Janiszewski d274abdcce Fixes for GCC
Makes jansson library required as well
2016-02-03 18:23:47 +00:00
Michał Janiszewski b7820c09cd Add docs to CPack-generated packages
Includes licence, contributors, readme, etc.
2016-01-25 11:17:25 +01:00
Michał Janiszewski 8599468760 Cleanup unused lodepng stuff 2016-01-23 17:13:15 +01:00
Michał Janiszewski abe6841e0b Update libraries 2016-01-21 00:01:03 +01:00
Michał Janiszewski 753d430eaa Add zlib-based compression and decompression 2016-01-20 15:30:59 +01:00
Michał Janiszewski b8b50684ba Bump CMakeLists' version to match other places 2016-01-17 16:19:54 +01:00
Michał Janiszewski e7ea6381cc Drop support for lodepng
All platforms can now use libpng 1.6
2016-01-09 21:50:08 +00:00
Michał Janiszewski ed8ac6f1cd Update CMakeLists.txt with new argparse location
Argparse library got merged into main repository, there's no need to
call out to it now.
2016-01-09 21:50:07 +00:00
Michał Janiszewski d29faf25c4 Remove tests
Tests were quite old, used very simple framework which did not allow
much fidelity and were probably never executed.
2016-01-09 21:50:06 +00:00
Michał Janiszewski db95b3ada3 Enable strict aliasing and make sure it gets spotted 2015-12-31 09:15:16 +01:00
Michał Janiszewski 94a3ccdab5 Detect libpng>=1.6 and fall back to lodepng 2015-12-30 13:36:15 +00:00
Michał Janiszewski 9321c53b87 Enable libpng on Linux builds
Lodepng is still available.
2015-12-30 13:34:51 +00:00
Michał Janiszewski c293572d3f Add SSL dependency from curl 2015-12-28 10:54:06 +01:00
Michał Janiszewski 8ebc3e7f85 Modify CMakeLists to enable STATIC support on Linux
This enables compilation with `-DSTATIC=ON` for native Linux builds.

Do note that Linux systems rarely come with static libraries, so it may
not be a popular option.
2015-12-28 10:10:13 +01:00
Michał Janiszewski f502b5ec1b Provide explicit option for static linkage
This solves woes of missing libraries on some systems by providing
user-accessible option to control static linkage.
2015-12-28 02:27:49 +01:00
Michał Janiszewski 6a5fc90cd4 Fix CMakeLists for MinGW cross-compilation
This makes sure that shared library built with MinGW toolchain is linked
statically to *all* its dependencies, including libc, libstdc++, libsdl2
and all the others. This allows producing of working `openrct2.dll` by
cross-compiling.

I hit a bug with libcrypto, a dependency of libssl, which in turn is a
dependency of curl, which creates a `DllMain` entrypoint for static lib
too, but since we don't do anything in ours, this should be safe.

I have only had chance to try it out when cross-compiling, ideally it
should be tested under Cygwin/MSYS too, but it is too bothersome to
setup for me.
2015-12-28 01:17:28 +01:00
Aaron van Geffen 43e193ba10 Remove FontConfig as a required module on OS X. 2015-12-25 14:32:49 +09:00
Michał Janiszewski 9b838aa0ee Add missing fontconfig lib for Travis and Docker 2015-12-25 01:53:53 +09:00
Aaron van Geffen dd604afc89 Use FontConfig to find suitable TrueType fonts on Linux and OS X. Fixes #2537. 2015-12-25 01:53:52 +09:00
Michał Janiszewski 3ba9ec8c81 CMake updates for packaging on Linux
This enables install and package targets for make.

You can specify installation prefix with -DCMAKE_INSTALL_PREFIX=path,
when doing `make install`, OpenRCT shall be found there.

You can also use `make package` for creating packaged release files.
2015-12-22 22:47:44 +01:00
Kyle Kirbatski 20df0a0be7 Add `.m` files 2015-12-17 11:52:57 -06:00
Gymnasiast 3db574b8bb Fix building in paths with spaces not working properly on Linux 2015-12-16 20:31:33 +01:00
Michał Janiszewski 7d132d8fe1 Extract and embed sections into binary itself
Fixed some CMakeLists.txt problems, made another target for converting
section images into something palatable by ld, modified the linker
script to place these ssection at predefined VMAs and updated openrct2.c
with new checks.
2015-12-16 19:16:27 +01:00
Michał Janiszewski 40059ced39 Add g2 target for easy generation 2015-12-12 23:28:56 +01:00
LRFLEW c9be2e1bc9 Resolved struct packing error and crash on OS X 2015-12-10 17:29:58 -06:00
Kyle Kirbatski af382b1884 Switched to -sectcreate instead of mmap on OS X 2015-12-10 16:32:46 -06:00
Michał Janiszewski 1bafbde113 Shift segments in Mach-O to outside of required AS
Mach-O defaults to having .text segment starting at 0x1000 RVA, which
clashes with the address space required for mmap to work properly.

This change tells linker to move the segment outside of required AS, and
then some, so that mmap can properly allocate required addresses without
evicting anything else.
2015-12-10 16:32:45 -06:00
Linus Unnebäck c4356c1ecc cmake: add iconv libraries 2015-12-10 09:35:38 +01:00
Michał Janiszewski c4ad2346e3 Fixes for building optimized binary on Linux
Use `-DCMAKE_BUILD_TYPE=X`, where X:
- `RELEASE`
- `RELWITHDEBINFO`
- `MINSIZEREL`

Only works for GCC, clang binaries crash for now.
2015-11-18 21:29:08 +01:00
Michał Janiszewski c0e2a5c7be Add get_current_rotation function and DEBUG_LEVEL macros 2015-11-02 22:58:15 +01:00
Michał Janiszewski 31f412d0e4 Fixes: scope & types, control flow, cmake, platform support 2015-10-29 20:26:47 +01:00
Michał Janiszewski f8407176d1 drop no longer needed debug switch for gcc 2015-10-22 23:39:09 +02:00