Commit Graph

39 Commits

Author SHA1 Message Date
elasota
fa1455f4f4 Add tool shim files to MakeTimestamp 2024-08-06 23:24:57 -04:00
Diomendius
ed4eb8e1f7 Use temporary staging dirs when building resources
This allows intermediate build artifacts to be cleaned up without
specifying them individually as BYPRODUCTS.

When building a data file <name>, all files are first built under
tmp/<name> before the target itself is moved from tmp/<name>/<name> to
Packaged/<name>.

add_house_file() could also be modified in this way, but it wouldn't
reduce the boilerplate by much, so it's probably not worth it.
2024-08-06 17:52:33 +12:00
Diomendius
c8e3e8683b Add deps in source tree to resource targets
This will make CMake rebuild resources if for instance the fonts are
updated.
2024-08-06 17:48:24 +12:00
Diomendius
ee60ef57a1 Generate Packaged/Houses dirs as dependencies
Uses add_custom_command() to add rules for generating these directories,
rather than creating them only when CMakeLists.txt runs. With this
change, you can manually delete Packaged from the build directory
without causing subsequent builds to fail.
2024-08-06 17:46:10 +12:00
Diomendius
6a13e44dae Add Tools CMake build target
All the individual executables are marked EXCLUDE_FROM_ALL, but the
added Tools custom target is marked ALL. The only visible effect of this
is that ConvertColorCursors does not get built by default, since all the
other tools are dependencies for the Resources or Tools targets, which
are both built by default. Otherwise, the benefit is simply to keep the
dependency tree clean. Only three targets are built by default:
Aerofoil, its resources and the conversion tools. Everything else is
built to satisfy dependencies.
2024-08-06 16:03:16 +12:00
Diomendius
68db3cd83e Add Executable build target
This is meant as an alias to the name of the main executable, for
consistency with the Executable install component.
2024-08-06 16:03:16 +12:00
Diomendius
13f0874757 Enable CMake Release build type and LTO by default 2024-08-06 16:03:16 +12:00
Diomendius
660d79980a Add add_data_file() to CMakeLists.txt
This automatically cleans up artifacts specified as BYPRODUCTS after
running the commands.
2024-08-06 16:03:16 +12:00
Diomendius
f65d550300 Add houses to CMake 2024-08-06 16:03:16 +12:00
Diomendius
d9049f3c8a Add icons to CMake (commented-out)
These are only used on Windows and the converted files have been
committed to the repo, but this might be useful to someone.
2024-08-06 16:03:16 +12:00
Diomendius
8a5b50d98d Add Fonts.gpf to CMake 2024-08-06 16:03:13 +12:00
Diomendius
91e2f3b25f Add ApplicationResources.gpf to CMake 2024-08-06 01:34:53 +12:00
Diomendius
0ebdabc12f Add ConvertColorCursors to CMake, port to *nix
- Includes WindowsUnicodeToolShim.h.
- Replaces sprintf_s() with std::ostringstream.
- Replaces fopen_s() with fopen_utf8().
- Switches to the toolMain() wrapper, which is a no-op on except on
  Windows, where it should improve Unicode support, though I can't test
  that on my end.
- Replaces \ with / in paths, which should still be Windows-compatible.
2024-08-06 01:34:53 +12:00
Diomendius
8b916867d5 Add GenerateFonts to CMake, port to *nix
Removes unused Windows-specific headers and adds arguments to specify
source and output directories, which is necessary for out-of-tree
builds, which are necessary to avoid name collisions on platforms where
executables have no file extension (so, basically everything except
Windows).
2024-08-06 01:34:53 +12:00
Diomendius
a7f5b653fa Add GpFontHandler_FreeType2 to CMake
Also add stddef.h include to GpRenderedGlyphMetrics.h to make size_t
visible. Does MSVC provide size_t by default, or via stdint.h? This
prevents compilation and I can't see how this would have compiled on
Windows otherwise.
2024-08-06 01:34:53 +12:00
Diomendius
5c74c96771 Add unpacktool to CMake, port to *nix
- Adds missing includes, removes some unused ones.
- Removes unused Windows.h and shellapi.h includes.
- Uses / as path separator. This is portable and should still work fine
  on Windows.
2024-08-06 01:28:44 +12:00
Diomendius
e78d93437a Add HouseTool to CMake 2024-08-06 00:50:29 +12:00
Diomendius
c2753ec679 Add MiniRez to CMake
Also includes <algorithm> to provide std::find(). Evidently something in
Windows implicitly provides find(), but it was broken on Linux.
2024-08-06 00:50:09 +12:00
Diomendius
f27860776b Add MergeGPF to CMake 2024-08-06 00:32:23 +12:00
Diomendius
77fcc35726 Add FTagData to CMake, port to *nix 2024-08-06 00:32:23 +12:00
Diomendius
e2bb19709d Add MakeTimestamp to CMake, port to *nix 2024-08-06 00:32:22 +12:00
Diomendius
77009b08ca Avoid Clang c++11-narrowing error
Downgrades c++11-narrowing to a warning when compiling with Clang. A
better solution would be to fix the error, but this at least brings
Clang in line with the more permissive GCC, which treats this as a
warning by default.
2024-08-06 00:32:10 +12:00
Diomendius
7a81b2b396 Add gpr2gpa to CMake, port to *nix 2024-08-06 00:16:22 +12:00
Diomendius
e2da9bb7c5 Add hqx2gp to CMake 2024-08-06 00:16:22 +12:00
Diomendius
796b2880cf Add hqx2bin to CMake 2024-08-06 00:16:22 +12:00
Diomendius
c372fcb92d Add bin2gp to CMake 2024-08-06 00:16:22 +12:00
Diomendius
1e4ee9335e Add flattenmov to CMake 2024-08-06 00:16:22 +12:00
Diomendius
9aa82066f1 Refactor CMakeLists.txt
The BUILD_INTERFACE generator expression isn't actually useful as we
don't use export(). CMAKE_CURRENT_SOURCE_DIR is also unnecessary as
CMake treats relative paths as relative to the current source directory
(or the current binary directory for outputs).
2024-08-04 12:57:13 +12:00
elasota
e33c01cc40 Change line endings to UNIX 2022-03-17 02:00:06 -04:00
Ryan Schmidt
e78b01a5f3 Improve CMake macOS build
Now actually builds on macOS.

Closes #9
2022-03-17 00:39:55 -05:00
elasota
3d5265258e Disable asserts 2021-05-16 12:08:23 -04:00
elasota
71115b2366 Fix AerofoilX compile failure 2021-05-14 19:19:03 -04:00
Madthijs
6fd1edd2c8 Merge branch 'master' into mac
# Conflicts:
#	GpApp/Main.cpp
2021-05-11 14:28:46 +02:00
elasota
24169507bd Add beep sound to platforms with no beep 2021-05-09 23:45:27 -04:00
Madthijs
c5a1303b71 Merge branch 'master' into mac
# Conflicts:
#	AerofoilX/GpMain_SDL_X.cpp
2021-04-28 19:17:55 +02:00
elasota
2cd4e4f178 UTF refactor to eliminate duplicated code outside of PL 2021-04-27 09:54:01 -04:00
Madthijs
e6df94dac0 First compile, Logger works 2021-04-11 14:07:16 +02:00
elasota
b90d0c303c Fix AerofoilX 2021-04-07 11:42:57 -04:00
elasota
7060676b73 Cygwin port 2021-03-18 17:08:11 -04:00