Commit Graph

71 Commits

Author SHA1 Message Date
Michael b054ef0ecc CREATE_PROJECT: use C++11-style for each loops instead of iterators 2026-02-11 01:28:21 +02:00
Michael 436f1ba155 CREATE_PROJECT: add support for SLNX files
Visual Studio 2022 17.14 introduces SLNX as a new XML-based solution format.
This change allows to create the solution as such an SLNX file instead of SLN.
2026-01-05 15:27:02 +02:00
Le Philousophe b8f5e93880 CREATE_PROJECT: Split iOS and tvOS from macOS XCode projects 2025-11-20 20:25:37 +01:00
Le Philousophe 96be501f58 CREATE_PROJECT: Remove useless attribute from ProjectProvider
Move it to MSVC where it's really needed.
2025-11-20 20:25:37 +01:00
Donovan Watteau 5bf1a12082 BUILD: Effectively drop support for MSVC < 2015
It's been documented on the wiki for nearly 3 years that MSVC 2015 is
the oldest MSVC release being supported.

AFAICS no-one is actively using any older version nowadays, and C++11
support in MSVC 2013 is incomplete anyway:
https://learn.microsoft.com/en-us/previous-versions/hh567368(v=vs.140)

This means that some old MSVC hacks can be dropped now (not touching
any vendored or generated code having such hacks, though).
2025-07-26 08:24:33 +03:00
SupSuper 3cfaa9506e CREATE_PROJECT: Add support for SDL3 2025-06-15 23:26:58 +03:00
Le Philousophe 5ca7c20121 CREATE_PROJECT: Add components based features dynamically
Cleanup the uneeded static features.
2024-12-26 18:42:44 +02:00
Le Philousophe 60104f3311 CREATE_PROJECT: Disable components when they are not needed 2024-12-25 00:34:39 +01:00
Eugene Sandulenko ba6604dd21 DEVTOOLS: CREATE_PROJECT: Add support for components
We scan the configure file and enable all components
2024-12-25 00:34:39 +01:00
Orgad Shaneh 4fa89cd73d CREATE_PROJECT: Move resource embeds from MSVC to general project
It is also needed for CMake project.

Amends commit 4dc9ef2771.
2024-03-21 18:06:01 +02:00
Orgad Shaneh b096814b0d CREATE_PROJECT: Inline member initialization 2024-03-16 21:44:08 +02:00
elasota 4dc9ef2771 DISTS: Move engine data defs to dedicated files 2024-02-27 17:12:15 +01:00
Martin Gerhardy 3e0b701d06 CREATE_PROJECT: pass-by-reference 2023-12-14 18:00:49 +01:00
sluicebox 335f90b136 CREATE_PROJECT: Set MSVC default subsystem to CONSOLE
MSVC builds now use the CONSOLE subsystem by default,
just like all our other Windows builds.

--use-windows-subsystem is now available to generate
projects with the WINDOWS subsystem.
2023-11-15 14:32:27 -08:00
elasota 667cb63823 DEVTOOLS: Add precompiled header support to MSBuild/MSVC. 2023-09-29 21:37:10 +01:00
elasota b24d281748 CREATE_PROJECT: Add --libs-path command line parameter that can be used in place of setting the SCUMMVM_LIBS environment var 2023-05-14 23:04:04 +03:00
SupSuper e396d34320 CREATE_PROJECT: Remove deprecated --use-canonical-lib-names
It's always the default
2023-04-29 13:16:08 +02:00
SupSuper d71a717b87 CREATE_PROJECT: Add --vcpkg option to MSVC generation 2023-04-29 13:16:08 +02:00
Walter Agazzi a6fa65e87a CREATE_PROJECT: Add option to use XCFramework in iOS, tvOS and macOS
The introduction of Apple M1 processor, which is based on the arm64
architecture, makes it impossible to use fat static libraries for iOS
and tvOS since building libraries for the simulators targeting the
arm64 architecture conflicts with the iOS and tvOS native arm64
libraries. It's not possible to have two arm64 libraries targeting
different platforms in the same fat library.

Apple resolves this problem with XCFrameworks. Each XCFramework
contain an Info.plist specifying which platforms and architectures it
targets.

The new iOS and tvOS library package, scummvm-ios7-libs-v3, utilize
the XCFramework format and includes pre-compiled libraries for both
iOS and tvOS with corresponding simulator.

Add the option to use XCFramework in create_project by passing the
switch '--use-xcframework'

Implement support to use XCFrameworks for iOS, tvOS and macOS. If not
passing '--use-xcframework' to create_project, legacy behaviour is
applied.

This commit also add support for mikmod for tvOS.
2023-04-24 22:34:55 +02:00
Donovan Watteau 18ab6803d6 JANITORIAL: Fix various "an" typos in comments 2023-03-16 14:47:28 +01: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
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
Eugene Sandulenko abea37c9bb ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01: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
sluicebox 2bca5da803 WIN32: Make UNICODE the default build configuration 2021-07-14 18:41:02 -05:00
sluicebox 1f253b805c CREATE_PROJECT: Add --use-windows-unicode 2021-06-29 12:38:01 -05:00
Donovan Watteau 5a78e1350b CREATE-PROJECT: Provide a stub for "override" to older compilers
msbuild.h makes uses of the "override" keyword, so borrow the compat
macro from c++11-compat.h to make this work on older compilers,
such as the ones found on Mac OS X Leopard.
2021-02-09 13:33:56 -08:00
Henrik "Henke37" Andersson ad09e09af5 CREATE-PROJECT: easy access to named features 2020-11-12 00:54:06 +00:00
SupSuper b0bc795999 CREATE_PROJECT: Don't include files with the same name but different paths 2020-11-11 10:24:59 +00: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
Henrik "Henke37" Andersson 803d8f1ba5 CREATE_PROJECT: Put detection in a separate project
Keeps the main project clean and is a prerequisite for loading detection as a plugin
2020-11-03 07:10:13 +00:00
aryanrawlani28 58a9de8092 DEVTOOLS: CREATE_PROJECT: Use map instead of unordered_map
- No C11 support yet, revert to use map to fix build
2020-10-03 14:56:36 +02:00
aryanrawlani28 de56694f53 DEVTOOLS: CREATE_PROJECT: Support static detection features
- This allows apps that use create_project to build with statically linked detection features.
- Also add support to write an addtional file - detection_tables.h inside engines/.
2020-10-03 14:56:36 +02:00
SupSuper 59d9975912 CREATE_PROJECT: Remove obsolete BuildSetup libraries property
Every generator manages their libraries, so this is no longer used
2020-08-20 23:54:32 +02:00
Michał Janiszewski bb9dddcd04 CREATE_PROJECT: JANITORIAL: Apply code formatting 2020-07-15 15:30:55 +02:00
SupSuper 7a5c4e6121 CREATE_PROJECT: Remove C++11 2020-07-15 15:30:55 +02:00
Michał Janiszewski c763e56d57 CREATE_PROJECT: Address review comments 2020-07-15 15:30:55 +02:00
Michał Janiszewski 3d3b0124ad CREATE_PROJECT: Make MSVC project understand more architectures 2020-07-15 15:30:55 +02:00
Michał Janiszewski a23b1789db CREATE_PROJECT: Add ability to remove feature from setup 2020-07-15 15:30:55 +02:00
Michał Janiszewski 0de86d6fbf CREATE_PROJECT: Add option to use canonical library names
This allows for easier plugging in of alternative providers of libraries
2020-07-15 15:30:55 +02:00
SupSuper 558b07584e CREATE_PROJECT: Use name-based UUIDs for MSVC projects
This keeps the project UUIDs consistent between regenerations,
avoiding excessive workspace reloads.
2019-06-19 00:15:48 +03:00
SupSuper fd0d65496e CREATE_PROJECT: Auto-detect Visual Studio version if not specified
This removes the need for separate scripts for every version
2019-04-20 07:47:25 -04:00
SupSuper 5c0529abc2 CREATE_PROJECT: Refactor Visual Studio version differences
Moved most generation differences to a MSVCVersion class, makes it
easier to support new versions without tracking down if-checks everywhere.
2019-04-20 07:47:25 -04:00
SupSuper 3091345af3 MSVC: Update post-build installer for Inno Setup 2018-12-23 18:39:06 +02:00
Cameron Cawley 8fa2f90a26 CREATE_PROJECT: Support building with Tremor instead of Vorbis 2018-11-27 22:58:02 +00:00
Adrian Frühwirth cee4d6b853 JANITORIAL: Fix trailing whitespace 2018-05-24 15:30:55 +02:00
Thierry Crozat 2f4d14aba5 CREATE_PROJECT: Disable engines for which required features are not available 2017-02-06 23:18:02 +00:00
Filippos Karapetis c69eb82527 CREATE_PROJECT: Switch SDL backend to SDL2 by default
This adapts create_project with the changes in de04a68c06
2016-08-22 13:09:49 +03:00