summaryrefslogtreecommitdiffhomepage
path: root/cmake
AgeCommit message (Collapse)Author
2016-07-19cmake: fix libexec dir on linuxStanislaw Halik
2016-07-19proto/wine: unbreakStanislaw Halik
2016-07-19cmake: allow only detected word size of 4 or 8Stanislaw Halik
2016-07-19cmake: install source code as wellStanislaw Halik
2016-07-18cmake: adjust paths for main executable dependenciesStanislaw Halik
2016-07-18cmake: install module stuff in ./modules/ on win32Stanislaw Halik
2016-07-18cmake: expose more prefixes in generated headerStanislaw Halik
2016-07-18cmake: allow for installing a dll alongside the main executableStanislaw Halik
2016-07-16cmake: simplify path with no hierStanislaw Halik
2016-07-14cmake: cleanup unused codeStanislaw Halik
2016-07-08cmake: don't show word size on each buildStanislaw Halik
2016-07-07cmake: force 64-bit build on OSX unconditionallyStanislaw Halik
2016-07-07cmake: include keyword parser at call site onlyStanislaw Halik
2016-07-07cmake: check word sizeStanislaw Halik
2016-07-06cmake: add universally good build defaultsStanislaw Halik
These were in the mingw-w64 toolchain file but it's good to have them in general.
2016-07-06cmake/rift: cmake has "else if" it turns outStanislaw Halik
2016-07-06gui, api, csv: support hier(7) on UnixStanislaw Halik
This affects platforms such as FreeBSD, Cygwin or Linux.
2016-07-04cmake/mingw-w64: enable nx bit (data execution prevention)Stanislaw Halik
We don't process untrusted user data but this should be the default anyway.
2016-07-03cmake/mingw-w64: change WARNINGS_ENABLE logicStanislaw Halik
It makes sense to default for opentrack only. Depends can be messy and they will.
2016-06-28cmake/linux: enable -fPICStanislaw Halik
2016-06-27cmake/mingw-w64: fix override for all buildsopentrack-2.3-rc49p7Stanislaw Halik
2016-06-27cmake: allow mingw-w64 toolchain file from unixStanislaw Halik
2016-06-27cmake: backoff gcc 6.1.0 due to miscompilationStanislaw Halik
Issue: #375
2016-06-18cmake/rift: fix guardStanislaw Halik
2016-06-16all: split "api" into "api" and "logic"Stanislaw Halik
Here, the "logic" module has all the stuff for building one's own graphical user interface. The "api" module has stuff used by other trackers. While at it, each of "api", "logic", and "compat" need their own export headers. This is because of preprocessor symbol clashes. This is all because a change in the "gui"-only dependency required a relink of all the trackers, protocols, and flters. It takes too long when building in the release configuration. With the split, only the "gui" module gets rebuilt. Since it has close to no static dependencies, it's fast enough.
2016-06-14cmake/mingw-w64: don't copy cflags to ldflagsStanislaw Halik
They get copied anyway.
2016-06-14cmake/mingw-w64: no need for finite math only nowStanislaw Halik
The `api/nan' compilation unit disables both fast math and finite math only.
2016-06-14cmake: update mingw-w64 toolchain fileStanislaw Halik
- set path for 6.1.0 from sourceforce mingw-w64 "personal builds". - set objcopy, objdump, strip - enable -fipa-pta now that it works, change some lto params - always strip for RELEASE build type - set install prefix to relative BINARY_DIR/install at first run - change some warns
2016-06-14cmake/mingw-w64: add some warns for C unitsStanislaw Halik
2016-06-10cmake: move warnings around in mingw-w64 toolchain fileStanislaw Halik
2016-06-09cmake: fix mingw-w64 toolchain cflags overrideStanislaw Halik
2016-05-23cmake: fix boilerplate for NO-LIBRARY + STAGE2Stanislaw Halik
2016-05-23cmake{/gui,}: make boilerplate usable for building the executableStanislaw Halik
2016-05-22cmake/{linux,mingw-w64}.cmake: inline visibility hidden is redundantStanislaw Halik
With -fvisibility=hidden it's hidden anyway.
2016-05-22cmake: rename macros -> boilerplateStanislaw Halik
2016-05-22cmake: simplify, avoid macrosStanislaw Halik
Avoid macros when able to allow for scope control. Macros shove everything inside the parent scope. The lone remaining macro needs to be there since functions allow for a fixed amount of parameters. Link against dinput automatically since LTO will remove it if it's not needed anyway. Rift trackers don't presently need access to ${project}-all etc. so don't expose them through opentrack_rift_boilerplate yet.
2016-05-21cmake: add osx -g also for lto caseopentrack-2.3-rc49p1Stanislaw Halik
2016-05-17cmake: work for shared library destructorsStanislaw Halik
Remove linker script usage. I'm worried about the potential interaction with shared libraries' _fini symbol for global destruction. Further, add -fuse-cxa-atexit in order to run the global destructors to begin with. This works on LLVM and GNU. MSVC doesn't export symbols by default.
2016-05-17cmake: -fPIC for Linux toolchain fileStanislaw Halik
2016-05-15Revert "cmake: remove header with version information"Stanislaw Halik
It's used in the win32 installer. This reverts commit 3252beca3aa20fe5183a13029db831e4e121f6dc.
2016-05-15cmake: stop forcing release build for appleopentrack.2.3-rc49p0Stanislaw Halik
2016-05-15many: remove executable bit from source filesStanislaw Halik
We no longer have this recurring problem since I enabled ignoring executable bit changes on the Windows workstation.
2016-05-15cmake: linux toolchain fileStanislaw Halik
For my convenience.
2016-05-13cmake: automatically enable lto and loop vectorization for mingw-w64 targetsStanislaw Halik
2016-05-13cmake: add cache variables for predefined warning typesStanislaw Halik
The numeric warnings are somewhat useful. Sadly only clang supports the vtable object file bloat warning.
2016-05-13cmake: expose clang being usedStanislaw Halik
2016-05-13cmake: disable all warnings for Qt moc-generated source filesStanislaw Halik
The files are machine-generated and full of redundancies. With pedantic warnings it drowns the relevant stuff.
2016-05-12cmake: remove header with version informationStanislaw Halik
It's pointless for it to exist, see previous commit for rationale. No call sites.
2016-05-12cmake: workaround LTO issue on Windows.Stanislaw Halik
With the GNU toolchain there's some mix-up and the "opentrack_version" symbol isn't emitted into the object file at all. Disable LTO for the "version" statically linked library. The "version" statically linked library exists so that files needing the version only need to be re-linked, not recompiled. A preprocessor global -DVERSION=foo rebuilds the whole project after each commit. A header definition rebuilds all include sites. LTO in the GNU toolchain is very broken on Windows, particular the interaction of GCC "linker plugin" injected into Binutils bfd ld. The gold ld we can't use since it's only for ELF executables. There's nothing alarming here at all unless there's some miscompilation and there doesn't seem to be any. The rest of the functional changes is changing cc -> c of that object file, and moving library definition after the source file is already generated.
2016-05-04cmake: fix osx linkStanislaw Halik