Commit graph

278 commits

Author SHA1 Message Date
2e250d0b91
Revamp Debian and NSIS packaging
The existing scripts for Debian and NSIS packaging were too complex and
dealt unnecessarily with lower level details that should be already
handled by CMake and CPack.

- Packaging-related scripts have been moved to the new cpack/ directory.
There, CPack variables common to all generators are defined in
cpack/common.cmake, and then generator-specific variables are defined
independently (e.g.: cpack/debian.cmake and cpack/nsis.cmake).

- Packaging is now optionally done at a second stage, by running
`cpack -G <generator>` on the build directory. This removes the
requirement to branch based on the system name, and instead all CPack
variables are assigned unconditionally.

- Since now only one version of the game is packaged, there is no need
to maintain the complex scripts in packaging/ and packaging/windows that
used to deal with all variants (e.g.: "wip-cars-and-tracks",
"hq-cars-and-tracks", etc.).

- The use of CPACK_NSIS_EXTRA_INSTALL_COMMANDS,
CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS and CPACK_NSIS_CREATE_ICONS_EXTRA
should not be required, let alone modifying the HKLM registry manually,
since CPack already provides everything required to set up the
installer, the uninstaller and shortcuts.

- $INSTDIR is not required, since NSIS would already prepend the
target installation directory.

- PROJECT_VERSION_METADATA is not a standard CMake variable.
CMAKE_PROJECT_VERSION_TWEAK is instead meant for this purpose. [1]

- OPTION_PACKAGING and OPTION_ALL_IN_ONE_PACKAGING were removed since
packaging will always be available, yet optional. Packagers must then
run CPack on a second stage, as described above.

- Outdated comments were removed to avoid confusion.

TODO:

- Add shortcut to track editor on NSIS.

- dmg packaging was not revamped because of lacking compatible
hardware, but still it has been moved to cpack/dmg.cmake.

- Windows portable packaging (OPTION_PORTABLE_PACKAGING) has been left
out since it required 7z and relied on several hacks to work.
Furthermore, portable versions of the game were already not released on
the latest release, either. [2]

[1]: https://cmake.org/cmake/help/latest/variable/CMAKE_PROJECT_VERSION_TWEAK.html
[2]: https://sourceforge.net/projects/speed-dreams/files/2.3.0/
2025-01-12 22:47:36 +01:00
76b83654e0
Set executable icon
On Windows, the executable icon is important since it is also inherited
by CPACK_NSIS_INSTALLED_ICON_NAME [1] and CPACK_PACKAGE_EXECUTABLES. [2]

[1]: https://cmake.org/cmake/help/latest/cpack_gen/nsis.html#variable:CPACK_NSIS_INSTALLED_ICON_NAME
[2]: https://cmake.org/cmake/help/latest/module/CPack.html#variable:CPACK_PACKAGE_EXECUTABLES
2025-01-12 22:46:34 +01:00
c677c8d9e2
guiscreen.cpp: Reduce minimum required OpenGL version
3.3.0 was required only because one shader, namely car.frag, was
arbitrarily requiring GLSL 3.3.0. However, it was already compatible
with GLSL 1.1.0, [1] so the minimum required OpenGL version can be
safely lowered to 2.1. [2]

[1]: https://www.khronos.org/registry/OpenGL/specs/gl/GLSLangSpec.1.10.pdf
[2]: https://en.wikipedia.org/wiki/OpenGL#Version_history
2025-01-07 00:28:46 +01:00
bd2880e37b
Look up SD_DATADIR_ABS if SD_DATADIR not found
Commit 744677c3a6f3e6c1c463fe55b7b5408355ffe89b from speed-dreams-data
replaced the definition for SD_DATADIR from an absolute path to a
relative path. This was done in order to allow a relative path to be
looked up first by GfApplication::parseOptions() (as required by Windows
and macOS builds), and then look SD_DATADIR_ABS if not found (as
required by in-tree builds).
2024-12-31 08:34:49 +01:00
ef04856f25
cmake: Replace SVN versioning with git-describe(1)
Now that the project has been migrated from SVN to Git,
the complex logic to determine the project version is now no longer
needed, since Git can achieve the same effect with git-describe(1). [1]

TODO: CPack-related code should be also updated accordingly.

[1]: https://git-scm.com/docs/git-describe
2024-12-31 06:50:42 +01:00
6fb613cc89
cmake: Do not install anything as DATA
Since the migration from SVN to Git, the data/ directory was put into a
separate repository, so that the engine repository should never install
anything there.
2024-12-31 06:14:07 +01:00
e93d3a9900
cmake: Leave SD_DATADIR empty if undefined
Otherwise, if the speed-dreams-data package is not found, SD_DATADIR
would expand to "/", which is a valid directory that the game would
attempt to look up.
2024-12-31 06:14:06 +01:00
522022fe1f
Remove xmlversion
This command line tool was meant to generate a XML file (typically,
version.xml) containing the version numbers for a list of files defined
by the SD_INSTALL_FILES CMake macro. Then, the game would read this XML
file and copy files around if an update was needed.

Unfortunately, this introduced a circular dependency between the engine
and data repositories, as the engine repository would rely on the data
directory to know the file list, and the data repository would rely on
the xmlversion executable to be available, and therefore the engine
repository.

Ultimately, none of this was needed: it is much simpler to define a
static, line-separated list of files in the data repository, and then
let the game figure out the versioning by itself. This renders
xmlversion entirely redundant, and therefore breaks the circular
dependency. As a bonus, some overly complex CMake stuff could be
removed.
2024-12-31 06:14:06 +01:00
63489e627e
install.cmake: Remove obsolete macros
Car/track installation is handled by the speed-dreams-data package.
2024-12-31 06:14:06 +01:00
cf18241a16
cmake: Get SD_DATADIR from speed-dreams-data package
So far, the game assets were located in the same repository as the game
engine. Since data and engine are split into different repositories, now
this project requires users to assign the CMAKE_PREFIX_PATH variable [1]
to indicate the location, only in the case of non-standard locations.

[1]: https://cmake.org/cmake/help/latest/variable/CMAKE_PREFIX_PATH.html
2024-12-31 06:14:06 +01:00
38e0ab0584 Remove robot clones
Robot clones were shared library duplicates with a different name that
the game would rely on to perform different actions based on the car
category.

Not only this was a hacky solution, but it also involved around 50
extra libraries loaded into the game, which means higher resource
consumption and slower startup time, as well as making driver management
more difficult to the much higher of directories involved in
data/drivers/.

Now, only 1 shared library per robot is defined.


Former-commit-id: 4c5141000bc9b46363a16c0928e90b14f40a430a
Former-commit-id: 773f3d6987da3f6ef8e78e0f0276e2d4bf2b07f2
2024-12-25 07:38:02 +01:00
xavi92
f996217509 customthirdparty.cmake: Optionally install libwinpthread
Some flavours of MinGW are built with the `posix` thread model, which
require to copy libwinpthread-1.dll to the `bin/` directory, as opposed
to those configured with the `win32` thread model.


git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@9612 30fe4595-0a0c-4342-8851-515496e4dcbd

Former-commit-id: d1c08685c33951fb150b94a0343e0d46d001ce4e
Former-commit-id: c146217ce9bef791e0cfb41a8ac2bea4e4a07346
2024-10-28 05:56:09 +00:00
xavi92
f38b49394a customthirdparty.cmake: Install freetype
For some unknown reason, this library was missing from the list, but is
required when rendering fonts from OpenSceneGraph.


git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@9611 30fe4595-0a0c-4342-8851-515496e4dcbd

Former-commit-id: 50b82dd90ada1f8a40c50c264f33a342e13e56ae
Former-commit-id: d167abf1e2cbfd4feedbf22b731d0a28947f8194
2024-10-27 08:11:50 +00:00
xavi92
4e08c6ae72 checks.cmake: Do not assume CMAKE_PREFIX_PATH
If the user configures the project with a CMAKE_PREFIX_PATH, subprojects
such as xmlversion would not be configured correctly because its
CMAKE_ARGS would expand -DCMAKE_PREFIX_PATH to:

${PROJECT_SOURCE_DIR}/3rdParty ${CMAKE_PREFIX_PATH}

And this whitespace-separated list would be refused when configuring
xmlversion.

This has one side effect: the user is now required to always assign
CMAKE_PREFIX_PATH when configuring the project, and therefore not rely
on the 3rdParty directory to be available from the root directory.


git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@9605 30fe4595-0a0c-4342-8851-515496e4dcbd

Former-commit-id: 9a7d683b5eb19de60403aafb2a89dd46b276b6db
Former-commit-id: 33e2c0fdfe057572b5b4f6e00339b1926cf96602
2024-10-27 08:08:24 +00:00
xavi92
05a7090c6d macros.cmake: Do not warn on INTERFACE libraries
Some third-party libraries might be defined as INTERFACE. [1]

[1]: https://cmake.org/cmake/help/latest/command/add_library.html#interface-libraries


git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@9603 30fe4595-0a0c-4342-8851-515496e4dcbd

Former-commit-id: 1e3c228d771550ed3ef9674999fbe8182f4bfd75
Former-commit-id: 492a4d2569b0dcb8845a2a6c95deaabd1214a900
2024-10-27 08:07:20 +00:00
xavi92
ec2222a1a4 cmake: Install MinGW libraries
These libraries must be installed into the bin/ directory in order to
run the speed-dreams-2 executable.

Note that MinGW is distributed with several flavours and therefore might
define different names for libgcc. [1] libstdc++-6.dll has also been
found on different directories depending on the flavour. On the other
hand, libssp might not be available on some distributions, so it remains
optional.

[1]: https://wiki.unvanquished.net/wiki/MinGW


git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@9602 30fe4595-0a0c-4342-8851-515496e4dcbd

Former-commit-id: 84c850bd58150fc67bdd124c0a353815185f86b0
Former-commit-id: 602c3a1227936c9da5b727c9e10ae6c90526227d
2024-10-27 08:06:42 +00:00
xavi92
7cd494f55e customthirdparty.cmake: Find libenet
Otherwise, libenet.dll would not be installed into the bin/ directory
and speed-dreams-2 would be unable to run.


git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@9601 30fe4595-0a0c-4342-8851-515496e4dcbd

Former-commit-id: de8b4de35a2665ad6163522097efbd2ab2b923d3
Former-commit-id: 59e37f3174600adff65a134079558a45354e35bd
2024-10-27 08:06:10 +00:00
xavi92
50162b566b 3rdParty-devel: Find libbroad and libmoto
These libraries are defined by the FreeSOLID project and required by
the speed-dreams-2 executable. However, for some unknown reason,
upstream does not install() them, so it must be patched.


git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@9600 30fe4595-0a0c-4342-8851-515496e4dcbd

Former-commit-id: d40c860e1a5494c4e23022c1ce7d22b86ecd3455
Former-commit-id: 771b4a9d1612100acad3a9756553b922f7bb351e
2024-10-27 08:05:35 +00:00
xavi92
cad91d2ead customthirdparty.cmake: Add missing libraries
git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@9595 30fe4595-0a0c-4342-8851-515496e4dcbd

Former-commit-id: 90f49158d88f4009c7f5d0c79cfae7fb643a8cde
Former-commit-id: b01685f84ecbe3c9e1d657d156b1cb023e1eb947
2024-10-27 08:01:58 +00:00
xavi92
221a933702 Define xmlversion as ExternalProject
xmlversion is meant to be a build-time tool, which means it must never
be cross-compiled. Since toolchain settings are shared among all
libraries within a project, the only way in CMake to build an executable
using the host toolchain (instead of the cross-toolchain) is to define
it inside of an ExternalProject.

xmlversion also depends on several in-house libraries that must be also
build with the host toolchain, so those libraries shall be both
cross-compiled and natively compiled.

On the other hand, since a known install prefix is assigned to
xmlversion, _XMLVER_EXE, _XMLVER_DIR and _XMLVER_NAME no longer need to
be calculated.

Note that CMAKE_FIND_ROOT_PATH must not be passed to the ExternalProject
since xmlversion must never be cross-compiled.


git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@9594 30fe4595-0a0c-4342-8851-515496e4dcbd

Former-commit-id: d3332d5a3d388b6a6f0179b72e509606ec0055aa
Former-commit-id: 31997c4074f9e9395cb1ccfd9f7487e02584eaf4
2024-10-27 08:01:23 +00:00
xavi92
a90eae53b3 FindSDL2.cmake: Do not require mingw32 library
This library is not defined by the x86_64-w64-mingw32 toolchain, and it
is not required by the project, either.


git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@9593 30fe4595-0a0c-4342-8851-515496e4dcbd

Former-commit-id: 5718cd2dbc3fc0d79246c65e65fae91b4f530bb7
Former-commit-id: 982e5f5388d65fce31ec9928d53a2976c75f5cae
2024-10-27 08:00:54 +00:00
xavi92
84f03be13d cmake: Set INTERFACE_* properties
Otherwise, target_link_libraries would be unable to find the library
path when using a target name e.g.: rhash::rhash.


git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@9592 30fe4595-0a0c-4342-8851-515496e4dcbd

Former-commit-id: ac76245db02518aa3d922d3655827259bbabfa54
Former-commit-id: 0b2d4fddd88c70ed19861d3e2d53bce395e92947
2024-10-27 08:00:07 +00:00
xavi92
2cd6611844 internaldeps.cmake: Deprecate legacy macros
ADD_INTERFACE_INCLUDEDIR relied on legacy CMake macros such as
INCLUDE_DIRECTORIES. Nowadays, targets do not specify their
dependencies' include directories, but just call target_link_libraries
so that CMake takes care of the rest.

Of course, that requires every target to define their own include
directories, if any, via target_include_directories.


git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@9591 30fe4595-0a0c-4342-8851-515496e4dcbd

Former-commit-id: f1d7ea3cb16eb1a23d600b219da8c64502e10c00
Former-commit-id: f5f7e5f86e3e984e60f794115da53fb97f7a9b22
2024-10-27 07:59:26 +00:00
xavi92
5798b9b850 macros.cmake: Simplify definition for SOURCE_DIR
The intention behind this overly complicated code was to find the
path to the top-level directory, which can be easily achieved via
CMAKE_SOURCE_DIR.


git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@9590 30fe4595-0a0c-4342-8851-515496e4dcbd

Former-commit-id: c760749883682a7879fc8cf1b5ab36719d1bab97
Former-commit-id: 0f212d66bfb33d92f4270fba3d3e2122e67f6c25
2024-10-27 07:58:46 +00:00
xavi92
f409ebdecc FindSDL2.cmake: Add CMAKE_FIND_ROOT_PATH to PATHS
Otherwise, builds that do not rely on standard search paths (e.g.:
Windows builds using a relative 3rdParty/ directory) would not be able
to find SDL2 libraries or header files.


git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@9589 30fe4595-0a0c-4342-8851-515496e4dcbd

Former-commit-id: b9ebe31b7b7de7dad0c7e3dc903e7acb893a3883
Former-commit-id: 09665c149ad79678cb3ac11bc5ed79ed9aea0cdb
2024-10-27 07:58:17 +00:00
xavi92
21807b8820 cmake: Remove SD_FIND_CUSTOM_3RDPARTY
This macro, along with _FIND_3RDPARTY_DEPENDENCY and
_FIND_3RDPARTY_DEPENDENCIES, was meant to tell find_package() and
friends about non-standard paths to find libraries when building for
Windows.

However, the same effect can be achieved via the standard CMake
variables CMAKE_PREFIX_PATH [1] and CMAKE_FIND_ROOT_PATH [2].

If cross-compiling, CMAKE_FIND_ROOT_PATH must be assigned when
configuring the project. This means the project must now be configured
with:

cmake -B <build-dir> -DCMAKE_FIND_ROOT_PATH=<root-dir>/3rdParty ...

[1]: https://cmake.org/cmake/help/latest/variable/CMAKE_PREFIX_PATH.html
[2]: https://cmake.org/cmake/help/latest/variable/CMAKE_FIND_ROOT_PATH.html


git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@9588 30fe4595-0a0c-4342-8851-515496e4dcbd

Former-commit-id: 9a28c7ff755e57080c1f6075dc9b7585146681b9
Former-commit-id: b406ba92a1955da3523eff392606d04d752bfdd0
2024-10-27 07:57:27 +00:00
xavi92
2004f4ba0c cmake: Rely on CURL::libcurl instead of CURL_LIBRARY
When calling find_package(CURL), different files might be inspected:

- $CMAKE_PREFIX/Modules/FindCURL.cmake
- 3rdParty/lib/cmake/CURL/CURLConfig.cmake

Which file is selected is decided by CMake depending on the context.
Unfortunately, whereas the former defines CURL_LIBRARY, the latter
does not.

However, both define the CURL::libcurl target, from which the library
location can be retrieved with get_property() so as to achieve the
same effect.

Fixing this also makes CURL_NO_CURL_CMAKE redundant.


git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@9582 30fe4595-0a0c-4342-8851-515496e4dcbd

Former-commit-id: 470e785d15589e41bf6f5d1b3c42318bb5ef645e
Former-commit-id: 5f8c279fc814833acdb26ade8979f67950033a8b
2024-10-27 07:54:00 +00:00
xavi92
ae54f23f05 FindPLIB.cmake: Add ssgAux as name hint
Whereas Windows systems are case-insensitive, POSIX systems could fail
to find libssgAux accordingly.


git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@9560 30fe4595-0a0c-4342-8851-515496e4dcbd

Former-commit-id: ecfbe7fddc04996fa305c4411089f98a7c2fc67e
Former-commit-id: d7ef6b509885f1a216f5c41ae708ad2c35ba5a64
2024-10-27 07:39:00 +00:00
xavi92
4681971d6d Remove svn:keywords property from the repository
These properties are not transmitted with git-svn(1) [1], which might
then cause failed patches when modifying lines close to these
properties.


git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@9554 30fe4595-0a0c-4342-8851-515496e4dcbd

Former-commit-id: 6ed21e1fe12d01a370842418c35722c75117a30a
Former-commit-id: 8ecd21b7c0211cd000b10b3f0032980f63c06398
2024-10-02 15:30:18 +00:00
xavi92
014f82c37c Fix trailing whitespaces and ending newlines
git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@9552 30fe4595-0a0c-4342-8851-515496e4dcbd

Former-commit-id: f126eada2ef5b97c10fbb59d74901bcc03303a19
Former-commit-id: df90a174acb9bc1810f0f24cfc186ff2bc36d420
2024-09-30 05:23:49 +00:00
xavi92
0e7a45d2be Remove $Id$
This SVN-specific keyword [1] did not expand as expected on Git
repositories migrated from SVN via git-svn(1) [2]. Because of this,
applying patches with modifications would sometimes fail because, even
if these lines were not modified, they could be part of the context
lines, thus heavily confusing Git.

Since it is already expected to migrate from SVN to Git sometime soon,
this would also make $Id$ redundant.

[1]: https://svnbook.red-bean.com/en/1.7/svn.advanced.props.special.keywords.html
[2]: https://git-scm.com/docs/git-svn


git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@9550 30fe4595-0a0c-4342-8851-515496e4dcbd

Former-commit-id: 7acf9a9675a0496a85ecd61210b8c29c89f9517a
Former-commit-id: 1878bb38889e4dddc83ef762b6b384f0f0a4ecc5
2024-09-30 05:17:15 +00:00
xavi92
f7dd89b2ad cmake: Add Findrhash.cmake
git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@9540 30fe4595-0a0c-4342-8851-515496e4dcbd

Former-commit-id: 95341c293c88b1d8d45e351336983b3b152b238d
Former-commit-id: c834c4137793fb5d7e4e22ede64bf02c4e8686d0
2024-08-12 23:59:58 +00:00
xavi92
6f1afb68b6 thirdpartydeps.cmake: Fix wrong reference to minizip
Findminizip.cmake does not define MINIZIP_LIBRARY, but
minizip_LIBRARIES. Ideally, minizip::minizip should be used instead, but
that seems not to work for some unknown reason.


git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@9531 30fe4595-0a0c-4342-8851-515496e4dcbd

Former-commit-id: c06a8fe688535315e10a1ece4175eda032d1b850
Former-commit-id: 053d6039517c16770d0b9a8994c72ba58f0c2da1
2024-08-09 10:06:24 +00:00
iobyte
8b191adc24 fix for FindCJSON.cmake from Joe
git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@9525 30fe4595-0a0c-4342-8851-515496e4dcbd

Former-commit-id: db9300ec7995fb4c3e510d9b15ff466fc541971b
Former-commit-id: c64f88857c9c9f09752e89cc8aca1702898b8980
2024-08-04 17:38:07 +00:00
iobyte
de681128e2 more windows build work
git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@9524 30fe4595-0a0c-4342-8851-515496e4dcbd

Former-commit-id: 692a5d4cc221908ddaed30eb3dfa80abfb7079e6
Former-commit-id: eae44d17673ae4d2cbaf4580c3ac0619255ce757
2024-08-04 16:18:22 +00:00
iobyte
61bd378a68 add FindcJSON.cmake
git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@9516 30fe4595-0a0c-4342-8851-515496e4dcbd

Former-commit-id: 35b9ac5c374c32c9424b2b67a9837adbbe1316e8
Former-commit-id: 622ebf17bcd80adf777f4317bf5e6e572fd4d8da
2024-07-31 14:26:04 +00:00
iobyte
81fce0966e add cJSON and minizip to thirdpartydeps.cmake
git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@9515 30fe4595-0a0c-4342-8851-515496e4dcbd

Former-commit-id: 5f4a5f51923ea856e8bc54989ac4d8ac1e9a478f
Former-commit-id: 035caa02e3af984140911cf92620990212af27a6
2024-07-31 14:04:58 +00:00
iobyte
02274c89c7 fix checks.cmake
git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@9511 30fe4595-0a0c-4342-8851-515496e4dcbd

Former-commit-id: 55c34f8296c7ae2840187dce3de63487269f865c
Former-commit-id: b6791f3e00792155e8cc32844f88e377f57da33a
2024-07-31 01:14:47 +00:00
iobyte
d7262c6526 fix Windows eventloop crash
git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@9510 30fe4595-0a0c-4342-8851-515496e4dcbd

Former-commit-id: 50f2810b869040a5343e3b322cbd8f3dbcc09cc1
Former-commit-id: 6e4960da072b9cc99bf3540561bb15fe853f9e70
2024-07-31 01:03:57 +00:00
xavi92
e06a519365 Remove trailing newlines
The following shell script was used:

while read f
do
	sed -i -e :a -e '/^\n*$/{$d;N;};/\n$/ba' -- "$f"
done <<EOF
$(svn ls -R | grep \
	-e '.\cpp$' \
	-e '\.cmake$' \
	-e '\.txt$' \
	-e '\.cppcheck$' \
	-e '\.frag$' \
	-e '\.h$' \
	-e '\.hpp$' \
	-e '\.vert$' \
	-e '\.xml$' \
	-e '\.java$' \
	-e '\.c$')
EOF


git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@9509 30fe4595-0a0c-4342-8851-515496e4dcbd

Former-commit-id: aac7ab5702079417cb16ca2fa291be07033ea549
Former-commit-id: f0286e4119f166d7b78f9d13ff2ea04ffaa95c67
2024-07-30 22:17:48 +00:00
xavi92
6d7ca06e02 String trailing whitespaces
The following shell script was used:

while read f
do
        sed -Ei 's/[[:space:]]+$//g' "$f"
done <<EOF
$(svn ls -R | grep \
        -e '.\cpp$' \
        -e '\.cmake$' \
        -e '\.txt$' \
        -e '\.cppcheck$' \
        -e '\.frag$' \
        -e '\.h$' \
        -e '\.hpp$' \
        -e '\.vert$' \
        -e '\.xml$' \
        -e '\.java$' \
        -e '\.c$')
EOF

As a side effect, this has also converted some files from CRLF line
endings to LF.

File extensions such as .ac or .osg were intentionally left out because
those usually are very large files generated by tools.



git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@9507 30fe4595-0a0c-4342-8851-515496e4dcbd

Former-commit-id: 6c1e5ab34415982ec77fc92a77e1b1c149518eca
Former-commit-id: c6cf9480ae7c1d2f9a999eb6c6b976eef8bae3ba
2024-07-30 21:45:07 +00:00
xavi92
4dd8b822e6 Implement in-game download manager
This in-game download manager allows users to fetch assets, such as
cars, tracks or drivers, from a configurable list of servers following a
specific JSON schema.

Several smaller classes have been designed to assist the download
manager:

- entry: defines an entry in the assets lists and its state.
- thumbnail: defines a visible entry on the list, will always match
one entry.
- writebuf: allows dumping a file downloaded over HTTP{S} to memory.
- writefile: allows dumping a file downloaded over HTTP{S} to a file.
- unzip: a higher-level, C++ wrapper to minizip.

It was also required to implement a function that removed directories
recursively, namely rmdir_r. Since this is not portable accross POSIX
and Windows systems, their respective implementations have been provided
on src/libs/portability.

The following dependencies have been added:
- libcurl: HTTP{S} operations, already required by webserver.
- OpenSSL: hash calculation.
- minizip: zip extraction, it required its on Findminizip.cmake as it is
not provided by upstream CMake.
- zlib: required by minizip.


git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@9490 30fe4595-0a0c-4342-8851-515496e4dcbd

Former-commit-id: 915908c54f5ea8d7f6926943b2fea670e9973bea
Former-commit-id: 9cb2a8874779f6b4d9d6201f3d8af8b29c067a13
2024-07-15 03:27:16 +00:00
beaglejoe
42316114fa Add option to create portable app for Windows
git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@9208 30fe4595-0a0c-4342-8851-515496e4dcbd

Former-commit-id: cc1671f4a8010971f5a01ae4d699d4b2b7baca35
Former-commit-id: 711be01c72c5ad62a50fde24d5cf3d339bb06226
2023-11-05 22:25:58 +00:00
beaglejoe
fe8715ee26 Change OPTION_CLIENT_SERVER default to true
git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@9045 30fe4595-0a0c-4342-8851-515496e4dcbd

Former-commit-id: abdfb68fcc6bd39524b4c64c2fdd82804409d516
Former-commit-id: 004ab597c3df8390cc63aa084a2ce69028a2c772
2023-06-25 23:32:36 +00:00
beaglejoe
a56db0dd29 Add OPTION_PARAM_OPTIMIZER (off by default)
git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@9019 30fe4595-0a0c-4342-8851-515496e4dcbd

Former-commit-id: 4c53cc43f49a04c2cda9a514987968b695908eec
Former-commit-id: 8f3862aff88d77078789f05e7b1fc268b46b57d8
2023-06-19 17:30:34 +00:00
torcs-ng
6b431d7eb9 - update option.cmake for tinygltf
git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@8869 30fe4595-0a0c-4342-8851-515496e4dcbd

Former-commit-id: be4358ce2355457bf524d2f64864c9194eeacb11
Former-commit-id: a2a8fb826f0da3c58f4b941f7f0af70d3338b6ae
2023-04-06 08:14:22 +00:00
beaglejoe
d83fadbede Quiet a CMake warning
git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@8866 30fe4595-0a0c-4342-8851-515496e4dcbd

Former-commit-id: 3044242c4446d039b0e6bd9826174625c2c875f8
Former-commit-id: 22b1796d5784f7b549c07336f5ccde2f2755fbff
2023-04-04 17:27:56 +00:00
beaglejoe
6b142146cd Find TinyGLTF on Windows
git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@8865 30fe4595-0a0c-4342-8851-515496e4dcbd

Former-commit-id: 941508cbe6acf08848d3fe00708402fc5e2cde30
Former-commit-id: 5821ec5ab6bf8dea665568198753639fc1287f94
2023-04-04 15:15:42 +00:00
torcs-ng
a1aa6b25f2 - added option_tinygltf
git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@8864 30fe4595-0a0c-4342-8851-515496e4dcbd

Former-commit-id: 2a83de7fe9b2e57c1eb68ddd3041a2b4109583b0
Former-commit-id: f616fdfa72c458b387be6c0b78bcdd7b5c0f7236
2023-04-04 09:19:30 +00:00
beaglejoe
01fd1a0390 Fix typo
git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@8830 30fe4595-0a0c-4342-8851-515496e4dcbd

Former-commit-id: a75c7c7d40c7ace67bc8a9e028407e5ce7a175a7
Former-commit-id: 813908b8a2a0bdd7a5a4ef84ce745e677ba48af9
2023-03-20 13:31:57 +00:00