Commit graph

192 commits

Author SHA1 Message Date
Hermès Bélusca-Maïto 5e673f3118
[CMAKE] MSVC cmake settings improvements.
- Always use string pooling when building: this helps reducing the
  size of the binaries due to string redundancy coming from the usage
  of __FILE__ / __RELFILE__ in the debugging helper macros. Note also
  that GCC builds use string pooling by default.

- Use suitable add_compile_flags() command.
- Add some explanative comments for some settings.

Some numbers (obtained with my local builds):

Before / After => Reduction
===========================

freeldr.sys  :  443 KB (  453.632 bytes) /  364 KB (  372.736 bytes) => ~ 18%
win32k.sys   : 1877 KB (1.922.048 bytes) / 1562 KB (1.599.488 bytes) => ~ 17%
ntoskrnl.exe : 2253 KB (2.307.072 bytes) / 1902 KB (1.947.136 bytes) => ~ 15.6%
kernel32.dll : 3008 KB (3.080.192 bytes) / 2906 KB (2.975.744 bytes) => ~ 3.4%
2019-01-12 18:09:51 +01:00
Timo Kreuzer 71fefa32db
[NDK][NTOS] Add global definition of INIT_FUNCTION/INIT_SECTION (#779)
* Add an NDK header to define INIT_FUNCTION/INIT_SECTION globally
* Use _declspec(allocate(x)) and _declspec(code_seg(x)) on MSVC versions that support it
* Use INIT_FUNCTION on functions only and INIT_SECTION on data only (required by MSVC)
* Place INIT_FUNCTION before the return type (required by MSVC)
* Make sure declarations and implementations share the same modifiers (required by MSVC)
* Add a global linker option to suppress warnings about defined but unused INIT section
* Merge INIT section into .text in freeldr
2018-12-30 12:19:11 +01:00
Serge Gautherie d840d7cb1b [CMAKE] MSVC: Make C4028 warning into error, on "i386" only
"C4028: formal parameter N different from declaration"

CORE-7538
2018-12-16 23:12:22 +01:00
Bernhard Feichtinger 76daaf9faf [MODULES] Add a convenient option to transfer files into a new installation (#877)
Purpose:
When doing a PXE BootCD installation, you may be left without networking, usb and a cd drive.
This adds an easy way to include a few or more files to the installation which are then present on the disk after the installation and which does not require any change to ReactOS source code/build script files (and no manual editing of boot/bootdata/packages/reactos.dff.in).

Proposed changes:
Adds a new modules/3rdparty folder which lets the files end up in C:\ReactOS\3rdParty ready for use.
2018-11-16 23:26:58 +01:00
Jérôme Gardou 5c61063d25
[CMAKE] Do not add any extension to separate debug symbol files (#1000)
There is no possibility for GDB to recognize them otherwise
2018-10-30 17:23:42 +01:00
Mark Jansen ea84aef662
[SDK] Update baseaddresses 2018-10-25 06:59:45 +02:00
Hermès Bélusca-Maïto 8269478385
[CMAKE] Apply patch INF file for the SETUP SYSTEM registry hive that removes the entries in the Critical Device Database that cause problems with PnP setup during 1st-stage setup. 2018-10-25 00:45:10 +02:00
Mark Jansen b494abbd72
[SDK] Add version option to our spec2def cmake command 2018-10-12 19:30:36 +02:00
Mark Jansen 4e3f76352a
[SDK] Add the WITH_RELAY option to msvc's spec2def command. (GCC already had it) 2018-10-12 19:30:35 +02:00
Hermès Bélusca-Maïto 4e6fc201a0
[MKHIVE] Fixes for the previous fixes.
- Fix parsing of the options.
- Only uppercase the file name part and NOT the full path!
  And do it in a way GCC-Linux correctly understands, aka.:
      *ptr = toupper(*ptr); ++ptr;
  but NOT!:
      *ptr++ = toupper(*ptr);
  (that last one worked on GCC-Win and MSVC).

[CMAKE] Let's keep SETUPREG.HIV and BCD hive file names in uppercase
(use the '-u' switch) while keeping the other ones in lowercase.

Should definitively fix GCCLin builder!
2018-10-09 01:33:10 +02:00
Hermès Bélusca-Maïto efbe071e02
[MKHIVE] Minor additional functionality.
- Add support for '/' switch characters.
- Add '-?' switch.

TEMPORARY:
- Add a '-u' switch to generate hive file names in uppercase (by default
  we keep these in lowercase). Should help in fixing GCCLin builder.

[CMAKE] Fix expected file name case. Should help in fixing GCCLin builder.
2018-10-09 00:15:14 +02:00
Hermès Bélusca-Maïto 84d2264d9b
[MKHIVE][CMAKE] Make mkhive a bit more flexible, so that it can generate only specific hives on-demand (and not all of them always at once).
This commit is needed for building a single bootcd registry hive. It will also enable 1-st stage setup to have a proper registry present as done on Windows.
CORE-13347

[CMAKE]
Note that the mkhive commands should really depend on the generated UTF16 INF files since the latter are those that are actually used as input for mkhive.
Otherwise, the mkhive calls & the UTF16 INF file conversion is not serialized and we can generate "corrupted" hives due to the fact that mkhive is using
INF files that are in the process of being (and therefore, only partially) generated.

svn path=/branches/setup_improvements/; revision=74741
svn path=/branches/setup_improvements/; revision=74749
2018-10-08 21:23:38 +02:00
Hermès Bélusca-Maïto 287d35b84d
[BOOTDATA][CMAKE] Enumerate the four first installation directories in 'canonical' order, to keep compatibility with Windows' txtsetup.sif/layout.inf. 2018-10-08 21:16:58 +02:00
Mark Jansen ea5912e4d1
[SDK] Generate msvc baseaddresses from an RTC build 2018-09-05 21:38:26 +02:00
David Quintana 823552d778 [CMAKE] Update baseaddress files to match latest changes. 2018-08-30 03:45:40 +02:00
Jake Collins 72827bc514 [MODERN.MSSTYLES] Add the initial version of the modern theme.
CORE-13020
2018-08-20 15:06:53 +02:00
Andrew Cook 8cd5c4e7bd CORE-14513 [CMAKE] Remove modules that are shipped with cmake (#575)
* Remove unused cmake modules - Both are unedited versions of modules provided by cmake itself
* Remove Compiler/GNU.cmake - Only chang was various _INIT flags, which are handled
via CMAKE_USER_MAKE_RULES_OVERRIDE instead
* Remove Platform/Windows.cmake - There's no clear explination for this file being in reactos
and is simply an old version of the one in cmake
* Remove Platform/Windows-MSVC.cmake - _INIT variable changes moved to overrides-msvc.cmake
Remove /implib from link commands
* Remove CMakeDetermineASMCompiler.cmake - Only change from 3.2 is the addition of a compiler list for the generic ASM dialect, but toolchain files explicitly set a compiler so the list is never used
2018-08-19 22:01:31 +02:00
Mark Jansen cf56e1cb58 [GDIPLUS] Add sxs registration for 1.0 version.
Needed by by some applications with MSVCR90.dll
CORE-14695
2018-08-18 18:25:13 +02:00
Mark Jansen 80bac79070
[CMAKE] Update all base addresses, taking into account the reserved user32 address from CORE-12752
CORE-11382
2018-07-12 21:55:21 +02:00
Mark Jansen 5a9dc5e791
[SDK] Add gen_baseaddress.py
This tool was already used to calculate the last baseaddress update.
It is based on baseaddress.sh that has been floating around.
CORE-11382
2018-07-01 20:17:46 +02:00
Mark Jansen a3ddb8a4c2
[CMAKE] Change winspool.drv to winspool again.
CORE-14781
2018-07-01 19:21:59 +02:00
Mark Jansen 8fb0c5a0ab
[CMAKE] Update baseaddress for gcc with dwarf.
CORE-14781
2018-07-01 18:21:12 +02:00
Mark Jansen 82351bc6d4
[CMAKE] Update baseaddress for msvc & gcc with rossym.
CORE-14781
2018-07-01 15:35:57 +02:00
Timo Kreuzer 03830f67a7 [CMAKE] winspool.drv -> winspool in baseaddress_msvc.cmake 2018-07-01 14:45:21 +02:00
Serge Gautherie 695547cd8c [CONFIGURE][CMAKE] Remove Visual Studio 9 (2008) support
ReactOS does not compile anymore with it.
VS9 is already officially unsupported.

CORE-11836
2018-06-05 18:59:36 +02:00
Serge Gautherie 7326dc03b6 [CMAKE] USE_CLANG_CL: Add "-Wno-parentheses-equality"
Silence some "code style" warnings.

CORE-14306
2018-05-03 08:12:17 +02:00
Giannis Adamopoulos 8d3045622e [RTL] actctx.c: Use an alternative implicit activation context when an application is built for latest windows versions.
Instead of loading systemcompatible.manifest as the implicit activation context, load forwardcompatible.manifest
Add a new assembly containing all apisets called ReactOS.Apisets and make it a dependency to forwardcompatible.manifest
2018-04-09 01:28:43 +03:00
Thomas Faber 3a0e654027
[CMAKE] Use configuration-specific names for files generated by CMake.
Fixes configuring with VSSolution.
2018-04-08 18:31:36 +02:00
Thomas Faber 9e6f3ef12b
[CMAKE] Avoid generator expresisons in install()'s RENAME argument. CORE-14509
This fixes rostests_install, and thus hopefully WHS-Testbot.
2018-04-02 10:07:38 +02:00
Thomas Faber 07720ed9a8
[CMAKE] Avoid use of the LOCATION property in add_cd_file/add_rostests_file. CORE-14509 2018-03-30 20:28:23 +02:00
Thomas Faber d96609a439
[CMAKE] Remove some anachronisms. 2018-03-30 18:52:14 +02:00
Giannis Adamopoulos 5b8975211d [GDIPLUS] Add it to winsxs.
[NTDLL_APITEST] Remove a hack for gdiplus
2018-01-27 02:45:50 +02:00
Mark Jansen 7e9fb41b9f [CMAKE/WIDL] Add rudimentary dependency tracking in add_rpcproxy_files
CORE-14204
2018-01-20 15:46:25 +01:00
Thomas Faber b20280a0f9
[CMAKE] Allow overriding the .dll extension for delay imports in MSVC builds.
Fixes delay-importing winspool.drv.
2018-01-01 19:05:30 +01:00
Giannis Adamopoulos 435b0b19d2 [COMCTL32] Install comctl32 v6 and its manifest in first stage 2017-12-24 21:19:03 +02:00
Colin Finck 12b78f182d
Replace our dxtn.dll by a version based on the libtxc_dxtn source code (#203)
This is no official system DLL and WineD3D is its only user. But latest WineD3D prefers the libtxc_dxtn codebase instead of the alternative library we used.
This is also what Mesa uses and Fedora ships now that the patents have expired, so we should stick to the same.

I'm importing the libtxc_dxtn-1.0.1 codebase from https://people.freedesktop.org/~cbrill/libtxc_dxtn/
It compiles warning-free in our tree without modifying a single line!

I'm merging this Pull Request based on the positive response in CORE-12759.
I lack a proper test case myself, but my version at least shouldn't make things worse. In my opinion, the previous one was broken anyway due to using stdcall imports when WineD3D called cdecl ones.

This also removes the NSWPAT option from our buildsystem as dxtn was its latest user.
2017-12-20 11:15:13 +01:00
Amine Khaldi 9f85ef6712 [CMAKE/CLANG-CL] Don't pass /TP twice when we're dealing with a clang-cl c++ PCH. Pass -nostdinc instead of /X on clang-cl builds. 2017-12-07 23:22:48 +01:00
Amine Khaldi 09c06a2f45 [CLANG-CL] Initial commit that allows us to compile ReactOS with clang-cl. 2017-11-23 14:09:57 +01:00
Hermès Bélusca-Maïto 3356f87b9e
[REACTOS] Add reactos/bin/suppl/ to the list of "known" (hardcoded) directories to make build configuration happy.
I use a (not yet used) dir-id value of "80" for this purpose (the value
"8" being already used for /bin/testdata/ and of course values from 9 up
to 50+ are also already used... >_>).
2017-11-17 01:48:18 +01:00
Timo Kreuzer 6073359086 [REACTOS] Fix x64 build
- SIZE_T -> ULONG in KsecGatherEntropyData
- Add missing ZwQueryInformationProcess() prototype for x64 build of btrfs
- Fix ml.exe path for VS 2017 Community Edition
- Add missing Handle32ToHandle to basetsd.h
2017-10-22 16:49:04 +02:00
Amine Khaldi 54e277d6b5 [CMAKE] Update baseaddress.cmake for the GCC builds. 2017-10-09 12:35:20 +01:00
Colin Finck c2c66aff7d Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys. 2017-10-03 07:45:34 +00:00