62 Commits

Author SHA1 Message Date
Donovan Watteau
db9f13d475 CREATE_PROJECT: Add libmikmod support 2023-04-10 20:14:22 +02:00
Eugene Sandulenko
741be7bab5
CREATE_PROJECT: Fix warnings 2023-03-30 16:59:49 +02:00
Orgad Shaneh
5214c04718 CREATE_PROJECT: Add required libraries for enet on Windows/CMake 2023-03-16 15:08:08 +01:00
Orgad Shaneh
6fb159f3f3 CREATE_PROJECT: Support Windows specific libraries for features
Use it for tts instead of the current hack.
2023-03-16 15:08:08 +01:00
Orgad Shaneh
45dde26fc5 CREATE_PROJECT: Simplify feature libraries initialization 2023-03-16 15:08:08 +01:00
Eugene Sandulenko
53163f427a DEVTOOLS: Added libvpx support to create_project 2023-03-05 21:29:03 +01:00
Martin Gerhardy
ac094c6868 CREATE_PROJECT: only specify those cmake parameters for find_feature, that are really used 2023-01-15 12:02:47 +02:00
elasota
843776dd85 DEVTOOLS: Promote numerous VS warnings to errors.
Changes the following warnings to errors:
C4701: potential use of uninitialized local variable
C4703: potential use of uninitialized local pointer
C4456: declaration hides previous local declaration
C4003: not enough arguments for function-like macro invocation
C4840: use of non-trivial class as an argument to a variadic function
C4805: unsafe mix of bool and int in a numeric operation or comparison
C4305: truncation of double to float or int to bool
C4366: address taken of unaligned field and used as an aligned pointer
C4315: object constructed into an unaligned field with a constructor that expects it to be aligned
2022-12-25 16:31:57 +01:00
Donovan Watteau
700a8071e5 BUILD: Check if there's an fseeko/ftello with 64-bit off_t
Some systems have fseeko but you need to check that off_t is a 64-bit
value (and this requires some magic incantation on some platforms),
others need fseeko64(), Windows has a different symbol, and then some
systems only have an fseek() that's limited to <2GB files.

This is a first step in trying to improve this.
2022-12-11 21:48:33 +01:00
Orgad Shaneh
eef62b8b41 CREATE_PROJECT: Fix condition for warning suppression
It should not include e.g. GCC 11.2.
2022-10-27 10:19:17 +03:00
Orgad Shaneh
246a062950 CONFIGURE/CREATE_PROJECT: Silence address-of-packed-member GCC 12 warning
It appears a lot, and these casts are intentional and look safe.

Example:
../scummvm/engines/glk/alan3/actor.cpp: In function 'Glk::Alan3::ScriptEntry* Glk::Alan3::scriptOf(int)':
../scummvm/engines/glk/alan3/lists.h:35:52: warning: converting a packed 'Glk::Alan3::ScriptEntry' pointer (alignment 1) to a 'Glk::Alan3::Aword' {aka 'unsigned int'} pointer (alignment 4) may result in an unaligned pointer value [-Waddress-of-packed-member]
   35 | #define isEndOfArray(x) implementationOfIsEndOfList((Aword *) (x))
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
../scummvm/engines/glk/alan3/actor.cpp:38:84: note: in expansion of macro 'isEndOfArray'
   38 |                 for (scr = (ScriptEntry *) pointerTo(header->scriptTableAddress); !isEndOfArray(scr); scr++)
      |                                                                                    ^~~~~~~~~~~~
In file included from ../scummvm/engines/glk/alan3/actor.h:25,
                 from ../scummvm/engines/glk/alan3/actor.cpp:22:
../scummvm/engines/glk/alan3/acode.h:453:8: note: defined here
  453 | struct ScriptEntry {    /* SCRIPT TABLE */
      |        ^~~~~~~~~~~
2022-10-27 02:26:02 +03:00
SupSuper
18ebbdcf99 CREATE_PROJECT: Don't add GCC warnings to MSVC CMake 2022-04-25 06:46:28 +01:00
SupSuper
d2ad40a7a1 CREATE_PROJECT: Fix missing prefix in CMake engines 2022-04-25 06:28:40 +01:00
Orgad Shaneh
34d3841269 CREATE_PROJECT: Fix cmake project with opengl enabled
Compliments 04b1ce5a6e88c7b9d8320f5c12b745131479e397.
2022-03-07 14:42:52 +02:00
Orgad Shaneh
c02abd2967 CREATE_PROJECT: Simplify engines part
Create a function add_engine which handles everything for the engine, and
remove redundant conditions all over the project file.
2022-03-05 21:39:08 +02:00
NMIError
221fa4c841
AUDIO: Add support for RetroWave OPL3
This commit adds support for the SudoMaker RetroWave OPL3 sound card. Requires
the retrowave library.

Add the following settings to scummvm.ini:
retrowaveopl3_bus=serial
retrowaveopl3_port=<port> f.e. COM3 or ttyACM0
2022-01-29 17:33:29 +01:00
Orgad Shaneh
7998025b98 CREATE_PROJECT: Centralize toUpper 2022-01-18 09:24:29 +02:00
Orgad Shaneh
aa24872dc6 CREATE_PROJECT: Accept std::ostream in writeFileListToProject 2022-01-14 12:53:21 +02:00
Orgad Shaneh
be1e3a011a CREATE_PROJECT: Use range-based for in cmake generator 2022-01-14 08:35:31 +02:00
Orgad Shaneh
cf32f6a497 CREATE_PROJECT: Leverage C++11 string literals for cmake generator 2022-01-14 06:02:13 +02:00
Orgad Shaneh
f7d528e1b8 DEVTOOLS: Fix link in cmake project with tts enabled 2022-01-12 23:42:41 +02:00
Orgad Shaneh
1d080331a4 DEVTOOLS: Bump minimum cmake version to 3.13
This mutes the following warning:
CMake Warning (dev) at CMakeLists.txt:1581 (target_sources):
  Policy CMP0076 is not set: target_sources() command converts relative paths
  to absolute.  Run "cmake --help-policy CMP0076" for policy details.  Use
  the cmake_policy command to set the policy and suppress this warning.

  An interface source of target "scummvm" has a relative path.
This warning is for project developers.  Use -Wno-dev to suppress it.
2022-01-12 23:41:38 +02:00
Le Philousophe
52dcac9fc6 CREATE_PROJECT: Fix theoradec feature name
This is needed by sword25
2022-01-09 17:28:17 +01:00
Henrik "Henke37" Andersson
8119ae19c0 CREATE_PROJECT: Fix feature name for freetype
The name was inconsistent with the main build system
2022-01-09 18:27:24 +02:00
Henrik "Henke37" Andersson
61e2c5c928 CREATE_PROJECT: Consistent name for zlib
The feature name didn't match with other code.
2022-01-06 22:43:05 +02:00
Cameron Cawley
21b0d6ded1 BACKENDS: Replace GLEW with GLAD, part of PR #3463 2021-12-30 14:53:48 +01:00
Eugene Sandulenko
abea37c9bb
ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
Orgad Shaneh
62797daf3c DEVTOOLS: Use nullptr
Using clang-tidy modernize-use-nullptr
2021-11-14 15:51:59 +02:00
sluicebox
16bf767de3 CREATE_PROJECT: Add --include-dir and --library-dir
Additional include and library directories can now be added.

This is most useful to Xcode Mac projects where a vanilla Homebrew setup
requires manually adding five directories through the Xcode UI and then
repeating that every time the project needs to be regenerated.

Now create_project can be scripted to regenerate a working Mac project
without any extra Xcode steps.
2021-11-06 19:08:06 -05:00
Eugene Sandulenko
5e7fe2dc57
JANITORIAL: Replace spaces in indentation with tabs 2021-04-15 21:20:36 +02:00
SupSuper
b0bc795999 CREATE_PROJECT: Don't include files with the same name but different paths 2020-11-11 10:24:59 +00:00
sluicebox
4f29b747fd CREATE_PROJECT: Fix compilation on older MSVC 2020-11-10 21:05:51 -08:00
SupSuper
e9b3974ff8 CREATE_PROJECT: Replace duplicate filename check with unique object files 2020-11-11 04:12:36 +00:00
Martin Gerhardy
7be30d492b CREATE_PROJECT: fixed cmake generator
* Support for pkg-config was added
* Shortened the CMakeLists.txt by more than 4000 lines
* Added macro for feature detection
* Configure stage is reporting missing libs as error now (they were reported as compile errors during the build before)
* Link the scummvm-detection lib (this was missing before)
* Added missing defines like DETECTION_STATIC and USE_SDL2
* Group impl and header files in src file list to shorten the cmake script
* Unified indention for generated script
2020-11-08 11:30:25 +01:00
Martin Gerhardy
813b497955 CREATE_PROJECT: fixed DeepCode warning 2020-10-19 20:24:54 +02:00
Martin Gerhardy
332c826b4b CREATE_PROJECT: export compile_commands.json via cmake
this is useful for e.g. clangd or other clang based tools like the analyser
2020-10-19 20:24:54 +02:00
Paweł Kołodziejski
35b9cccbde ALL: Merge ResidualVM 2020-10-09 19:44:13 +02:00
Pawel Kolodziejski
5487e5e718 ALL: Sync with ScummVM rev: e08ba6ff14b70accaa04323d67952eeb53a0e82a 2020-09-27 19:45:22 +02:00
Pawel Kolodziejski
d5304e2568 ALL: Synced with ScummVM - rev: 33a47d23b85694015fe2aa340219d2b60db873f3 2020-09-03 02:21:14 +02:00
SupSuper
bcb7d1f30c BACKENDS: Discord rich presence support
Adds support for showing the currently running game
in a Discord user's game activity.
2020-08-25 10:47:41 +02:00
Pawel Kolodziejski
8f4e1c6cf3 Sync with ScummVM rev. 654b8208b878ddb72bd5d6c1bbc43934b31231b7 2020-06-22 08:14:16 +02:00
Zvika Haramaty
7e168256c2 DEVTOOLS: add fribidi library support to create_project 2020-04-30 23:59:10 +01:00
Bastien Bouclet
66654cb376 ALL: Sync with ScummVM - rev. cd37d510f93a7e9ba35a442d2a3d15de9f4846da 2019-01-26 20:47:55 +01:00
Cameron Cawley
8fa2f90a26 CREATE_PROJECT: Support building with Tremor instead of Vorbis 2018-11-27 22:58:02 +00:00
Cameron Cawley
90299eb73e CREATE_PROJECT: Fix creating CMake projects outside of the main source directory 2018-08-11 08:22:03 +02:00
Bastien Bouclet
0de4171c07 CREATE_PROJECT: CMAKE: Fix importing SDL2 when it was built using CMake
When SDL is built using CMake, Find_Package imports a target instead of
defining variables. If a target was imported we now define the include
path and linker flags variables from the target's properties.

Using imported targets is a best practice. Ideally, we should define an
imported target when we detect variables were defined.
However, the linker flags variable would need to be parsed into a
library path and a list of libraries, making that approach impractical.
2018-04-22 09:30:21 +02:00
Bastien Bouclet
04c321d200 CREATE_PROJECT: CMAKE: Fix importing SDL2 when it was built using CMake
When SDL is built using CMake, Find_Package imports a target instead of
defining variables. If a target was imported we now define the include
path and linker flags variables from the target's properties.

Using imported targets is a best practice. Ideally, we should define an
imported target when we detect variables were defined.
However, the linker flags variable would need to be parsed into a
library path and a list of libraries, making that approach impractical.
2018-04-22 09:27:04 +02:00
Bastien Bouclet
1702925c31 CREATE_PROJECT: Place libs requiring symbols before libs providing them
In the CMake generator. So the linker can resolve the symbols it marked
as unresolved as it walks the libraries.

Fixes building ResidualVM with msys2 from Qt Creator on Windows.
2018-03-20 19:37:45 +01:00
Bastien Bouclet
728f4d4ba5 CREATE_PROJECT: Place libs requiring symbols before libs providing them
In the CMake generator. So the linker can resolve the symbols it marked
as unresolved as it walks the libraries.

Fixes building ResidualVM with msys2 from Qt Creator on Windows.
2018-03-20 19:36:44 +01:00
Bastien Bouclet
3ec01653c3 ALL: Merge from ScummVM rev 3a933138ce9273724726efc0df051b8dcf92b7d8 2017-12-06 21:41:03 +01:00