Victor Perevertkin
8e1fa03456
[CMAKE] Replace custom scripts in compilerflags with standard ones
...
- add_target_link_flags changed to target_link_options
- add_target_property changed to set_property(... APPEND ...)
2021-09-14 17:56:22 +03:00
Julio Carchi
2268b33e18
[CMAKE][BOOTDATA] Fix LiveCD does not import caroots.inf into registry CORE-17739 CORE-17735 ( #3930 )
...
It regressed by 0.4.9-dev-82-g 6158207c31
KVM https://reactos.org/testman/compare.php?ids=78729,78730 LGTM
VBox https://reactos.org/testman/compare.php?ids=78728,78731 LGTM
2021-08-30 13:07:12 +02:00
Jérôme Gardou
c6d08c4828
[CMAKE] Update DLL base addresses
2021-08-03 10:36:32 +02:00
Victor Perevertkin
5176f580e5
[CMAKE] Add memcmp to libntoskrnl for both clang and clang-cl
2021-08-02 20:23:22 +03:00
Victor Perevertkin
49cfac17c5
[FFS] Remove the FFS/UFS driver
...
The upstream driver is not maintained and the file system itself
is in a semi-abandoned state.
Originally imported at 3a3ef631d1
The driver is written by Lee Jae-Hong, updated by Bo Brantén.
ReactOS porting made by Peter Hater and Pierre Schweitzer.
Follow updates at http://www.acc.umu.se/~bosse/
FS Recognizer code is left to keep the FS support as an
installable driver.
CORE-11040
2021-07-30 17:14:57 +03:00
Victor Perevertkin
2e2190df57
[REISERFS] Remove the ReiserFS driver
...
The upstream driver is not maintained and the file system itself
is in a semi-abandoned state.
Originally imported at e308102f4a
The driver is written by Mark W Piper, updated by Bo Brantén.
ReactOS porting made by Peter Hater and Pierre Schweitzer.
Follow updates at http://www.acc.umu.se/~bosse/
FS Recognizer code is left to keep the FS support as an
installable driver.
CORE-11005
2021-07-30 17:14:53 +03:00
Timo Kreuzer
cb9b538725
[CMAKE] Turn all warnings into errors on MSVC x86
2021-07-23 22:03:48 +02:00
Timo Kreuzer
f4de12e9f4
[CMAKE] Don't turn C4101 (unreferenced local variable) into an error on release builds
2021-07-11 21:45:29 +02:00
Jérôme Gardou
54ecf703f2
[CMAKE:GCC] Produce RosSym data even when building with separate debug symbols
2021-06-29 11:49:20 +02:00
Victor Perevertkin
1c7f3476a0
[CMAKE] Use BUILD_MP CMake option correctly
2021-06-28 17:54:09 +03:00
Jérôme Gardou
d1f5c31820
[SDK] Add GCC overrides for SAL annotations
...
GCC has some functions, variables & type attributes which can be used as aliases
for some of the SAL annotations. Although it's not as rich & precise, it's still useful
since we actually enable -Werror on GCC builds whereas we don't use such an option
on MSVC builds.
For now, _Must_inspect_result_ is aliased to warn_result_unused attribute.
2021-06-28 10:20:57 +02:00
Dmitry Borisov
8939abf113
[ISAPNP] Disable bus scan on unsupported platforms
...
This speeds up boot a bit and also decreases binary size.
- Introduce a new CMake define ISAPNP_ENABLE that defined only in x86 platform
when ISA PnP is supported.
2021-06-20 19:24:32 +06:00
Serge Gautherie
c2317d773e
[CMAKE] host-tools: Define ROS_SAVED_* for MSVC_IDE only
...
Addendum to 18e95f5
.
ROSBE-174
2021-06-11 02:08:12 +03:00
Mark Jansen
64d3a54de9
[HOST-TOOLS] Block sending telemetry when spawning a new shell
2021-06-06 00:43:05 +02:00
Mark Jansen
5f94b23d2b
[HOST-TOOLS] Configure environment for MSVC cross-compiling
...
This makes ARM builds on a non-arm host work again.
CORE-17542
CORE-17517
2021-05-24 17:34:49 +02:00
Mark Jansen
0911e8f457
[CMAKE] Add some arm/arm64 specific paths
...
CORE-17517 CORE-17518
2021-05-24 17:34:28 +02:00
Mark Jansen
18e95f5a4e
[CMAKE] Store and re-use M4 and BISON_PKGDATADIR env variables
...
ROSBE-174
2021-05-22 16:38:17 +02:00
Jérôme Gardou
8d1e01be0e
[NLS] Use files provided by Microsoft to generate most of our NLS files
...
Instead of binary blobs coming from who-knows-where
CORE-17571
2021-05-19 22:50:29 +02:00
Jérôme Gardou
0f723105c6
[CMAKE] Allow compiling amd64 port with GCC on Windows
...
Dedicated to Daniel
2021-05-19 14:13:51 +02:00
Dmitry Borisov
6e33c8ffd3
[PEFIXUP] Fixup of resource sections in GCC builds. ( #3594 )
...
Make resource sections discardable for kernel-mode drivers and DLLs.
2021-05-10 00:36:38 +02:00
Jérôme Gardou
aa51bcfbcb
[CMAKE] Do not use a flag which clang doesn't know
2021-05-03 22:00:57 +02:00
Jérôme Gardou
7197620b89
[CMAKE] Always use cl to build host tools
2021-05-03 22:00:57 +02:00
Jérôme Gardou
ec68a3311f
[CMAKE] Use SEH exceptions for c++ in clang amd64 build
2021-05-03 22:00:57 +02:00
Jérôme Gardou
b52ab2493b
Revert "[CMAKE] Disable SSE instruction on GCC amd64 builds"
...
The right fix is to ensure that the stack is properly 16-bit aligned
This reverts commit 63944988a2
.
2021-05-03 22:00:57 +02:00
Jérôme Gardou
63944988a2
[CMAKE] Disable SSE instruction on GCC amd64 builds
...
Except for user-mode modules
2021-04-28 13:10:23 +02:00
Jérôme Gardou
ba74a05a17
[PSEH] Add implementation for GCC amd64
...
Also, put include directory next to the library and use
target_include_directories(.. INTERFACE ..) to get this right.
This is because :
- Having includes & implementation in two different places buggers me
- This makes sure that there is no "if it compiles everything is fine" behaviour from anyone
because now even static libraries need it for GCC amd64 build
Also add __USE_PSEH2__ define for the non SEH-aware compilers out there and use it in a few headers
where we define macros involving __try
2021-04-28 13:10:23 +02:00
Jérôme Gardou
37bc01f42b
[CMAKE] Introduce a GCC plugin for helping with amd64 SEH implementation
...
\#pragma REACTOS SEH(except)
\#pragma REACTOS SEH(finally)
What it does is counting the number of SEH __try blocks and emit the proper assembly statements at function prologue
It also checks for mixing C++ & SEH exception handling, which wouldn't work
2021-04-28 13:10:23 +02:00
Jérôme Gardou
97a8953538
[CMAKE:GCC] Enforce file alignment on driver & kernel images
2021-04-28 13:10:23 +02:00
Jérôme Gardou
9ef5a7eb7a
[CMAKE] Fix compilation with newer windres versions
...
Also use clang as preprocessor when using it
Also, use *our* headers instead of the platform ones
2021-04-27 11:54:12 +02:00
Serge Gautherie
c41007624f
[CMAKE] config.cmake: Fix 'STEQUAL' typo, in a comment
...
Addendum to e90b6bb
.
2021-04-27 10:36:54 +03:00
Victor Perevertkin
d10728a645
[CMAKE] Rely less on CMAKE_BUILD_TYPE variable
...
Having conditional statements with CMAKE_BUILD_TYPE is an antipattern
See https://stackoverflow.com/questions/66079007/having-conditional-statements-on-build-type-variable-a-good-design
We use both single- and multi-config generators (Ninja and VS), so we
can't really rely on CMAKE_BUILD_TYPE, because it's not always set.
This commit alters some conditional flags to use <$CONFIG:...>
generator expression, but is still not complete. Also, our default
optimization level (4) now has what was always a de-facto flags
2021-04-15 06:44:56 +03:00
Victor Perevertkin
72ad37c1cd
[CMAKE] Unify configs for architectures
...
config*.cmake files are constantly getting out of sync between
each other. Besides that, the parameters are not really dependent
on a target architecture, but rather on a compiler (except *ARCH)
This approach seems to be more future-prone, and allows to see
all the options in one file (there are really not that many of them)
2021-04-15 06:44:52 +03:00
Serge Gautherie
8ddbfdeb57
[BOOTDATA][CMAKE] Sort 2 directories out
...
winsxs\x86_reactos.newapi_6595b64144ccf1df_1.0.0.0_none_deadbeef:
removed: silently added on 8d30456
and never used.
bin\suppl:
moved: to 60 from 80.
2021-04-12 17:40:18 +02:00
Jérôme Gardou
76a241dea6
[CMAKE] Also set GCC/CLANG variables on amd64 builds
2021-04-09 12:35:30 +02:00
Jérôme Gardou
83e1afe12a
[CMAKE] Do not call clang with unsupported arguments
2021-04-09 10:09:55 +02:00
Victor Perevertkin
c7d1ff4a9d
[SDK][NDK] Fix clang 12 compilation
2021-04-09 03:51:32 +03:00
Mark Jansen
2587d72ef7
[WINSXS] Add some amd64 manifests
...
Co-authored-by: Timo Kreuzer <timo.kreuzer@reactos.org>
2021-04-08 20:48:24 +03:00
Jérôme Gardou
9c4ae0d05e
[CMAKE] Honor CMAKE_EXE_LINKER_FLAGS_INIT in GCC build
2021-04-06 19:26:33 +02:00
Jérôme Gardou
f5bace8536
[CMAKE] Move toolchain specific handling to set_module_type_toolchain
...
+ style fixes
2021-03-23 11:18:43 +01:00
Jérôme Gardou
5c21460680
[CMAKE] Put .rsrc section after the INIT section on drivers, like link.exe does
2021-03-23 11:18:43 +01:00
Jérôme Gardou
e55123a6a2
[CMAKE] Add the kernel module type
...
Take this as an occasion to use target_link_options more
2021-03-23 11:18:43 +01:00
Jérôme Gardou
812c9e5a11
[CMAKE] Fixup of driver sections in GCC builds
...
Also introduce a helper variable to list KMode modules
2021-03-23 11:18:43 +01:00
Jérôme Gardou
5489efcb1a
[SDK:TOOLS] Add --driver option to pefixup
...
For now, this adds IMAGE_SCN_MEM_DISCARDABLE to the INIT section, and IMAGE_SCN_MEM_NOT_PAGED to sections which are not named PAGE or .reloc
2021-03-23 11:18:43 +01:00
Jérôme Gardou
56b1baa3dd
[CMAKE] Restore using LD linker script with GCC
2021-03-23 11:18:43 +01:00
Jérôme Gardou
6445f33704
[CMAKE] Put INIT section before .reloc and not after.
...
CORE-14683
2021-03-23 11:18:43 +01:00
Jérôme Gardou
49286a6225
[CMAKE] Get rid of add_object_library
...
It's not needed anymore
2021-03-03 08:34:32 +01:00
Jérôme Gardou
c68739e566
[CMAKE] Preprocess the ASM files but let msbuild handle their actual compilation
...
CORE-17423
2021-03-03 08:34:32 +01:00
Jérôme Gardou
41130ab5c6
[CMAKE] Use ASM_MASM language when building with MSVC toolchain
...
CORE-17423
2021-03-03 08:34:32 +01:00
Mark Jansen
35103558e1
[CMAKE] Fix empty dependencies.graphml being created
2021-02-07 14:02:01 +01:00
Hervé Poussineau
ebb7088b02
[CMAKE] Remove unused variables _ELF_
...
This is not used anymore since r55855 (818418643e
)
2021-02-04 11:14:59 +01:00
Victor Perevertkin
5375e33490
[CMAKE] Generate Flex and Bison files at build time
...
We have Flex and Bison distributed along with RosBE 2.2 so this should
not be a problem
2021-01-28 06:43:05 +03:00
Mark Jansen
b1bf3aae50
[CMAKE] Fix host-tools path for MSVC IDE
2021-01-08 21:12:11 +01:00
Hervé Poussineau
39545c3385
[CMAKE] Use -Wno-error when compiling with GCC x64
2021-01-05 14:19:45 +01:00
Jérôme Gardou
c8d07514c8
[CMAKE] Fix GCC -fstack-protector usage
2021-01-05 13:38:57 +01:00
Victor Perevertkin
edb425d89e
[CMAKE] Use consolidated registry.inf for generating SETUPREG.HIV
...
This way all registry data generated by add_registry_inf goes there.
SETUPREG.HIV increased by about 12KiB after that
2021-01-04 16:50:32 +03:00
Victor Perevertkin
e394a1312a
[CMAKE] Replace CMAKE_AR with CMAKE_LINKER /LIB for msvc
...
Render the command to a variable for dealing with quotes properly
Addendum to ca1b2ada34
and b96e88894a
2021-01-03 04:06:51 +03:00
Victor Perevertkin
ca1b2ada34
[CMAKE] Replace DIVISION_SLASH unicode character with SOLIDUS
...
This fixes the build on some machines. In addition, replace
the hardcoded "LINK /LIB" with ${CMAKE_AR}
Addendum to b96e88894a
2021-01-03 03:46:12 +03:00
Jérôme Gardou
b96e88894a
[CMAKE] Turn import libs into regular C static libs
...
Embed msvcrtex into libmsvcrt
Idea taken from Thomas Faber
2020-12-28 12:13:30 +01:00
Jérôme Gardou
56e56f8ecc
[CMAKE] Use -fcommon when using CLang
2020-12-28 12:13:30 +01:00
Victor Perevertkin
6bab72f69a
[CMAKE] Fix RUNTIME_CHECKS dependent option
...
Addendum to 92dfec219d
and a2a6038e56
2020-12-14 21:09:14 +03:00
Victor Perevertkin
16e5ce8fb1
[CMAKE] Use C_STANDARD property instead of command line option
...
Addendum to 64211aa696
and 19779b3f96
2020-12-05 15:35:06 +03:00
Hervé Poussineau
4469ab3620
[CMAKE] Disable compression of debug sections in GCC <= 7.0
...
We use MSVC, Clang or GCC > 7.0 these days.
2020-12-01 18:44:53 +01:00
Jérôme Gardou
f54c7b646c
[VMAKE/WIDL] Properly fix build (try 3)
2020-11-20 19:57:48 +01:00
Jérôme Gardou
72d9471424
[CMAKE] Fix host tools dependency tracking
2020-11-20 19:57:48 +01:00
Jérôme Gardou
8297109b95
[CMAKE/WIDL] Fix build (try 2)
2020-11-20 10:17:43 +01:00
Jérôme Gardou
acfff0919e
[CMAKE/WIDL] Fix build
2020-11-20 10:12:31 +01:00
Jérôme Gardou
b587e7b32e
[CMAKE/WIDL] Run widl from the source directory
...
This dramatically improves ccache direct hit rate as now the generated files are identical across build trees
2020-11-20 09:47:33 +01:00
Jérôme Gardou
edc1f3ca56
[CMAKE] Fix use of CLang
...
- Updated toolchain file
- set GCC variable when using CLang in "GCC mode"
- Properly retrieve GCC support libraries
- Various flags needed to get this going
2020-11-16 16:58:10 +01:00
Jérôme Gardou
bf04126e02
|CMAKE] Use RULE_LAUNCH_COMPILE property to handle ccache
2020-11-09 10:47:19 +01:00
Victor Perevertkin
658f742c2d
[NDK][CMAKE] Introduce DATA_SEG and CODE_SEG macro
...
These are for putting code and data to non-default sections
At the same time, move INIT section attributes declaration to cmake files
2020-11-02 21:27:06 +03:00
Timo Kreuzer
d685dcee9b
[CMAKE] Rename def files for import libraries on MSVC builds to *_implib.de like on GCC
2020-11-01 09:33:14 +01:00
Serge Gautherie
a2a6038e56
[CMAKE] MSVC RUNTIME_CHECKS is a 'Debug'-only feature
...
"cl : Command line error D8016 : '/Ox' and '/RTC1' command-line options are incompatible"
Addendum to 92dfec219d
.
2020-10-24 04:28:16 +03:00
Jérôme Gardou
23e04ae1ee
[CMAKE] Use an INTERFACE library to perform the msvcrt <-> msvcrtex binding
2020-10-22 18:07:27 +02:00
Jérôme Gardou
5c25e816bf
[CMAKE] Only link msvcrtex to win32cui, win32gui, win32dll, win32ocx and cpl modules
2020-10-22 18:07:27 +02:00
Jérôme Gardou
840fe4d6ac
[CMAKE] Introduce the REACTOS_MODULE_TYPE target property
...
And set it in set_module_type function
2020-10-22 18:07:27 +02:00
Jérôme Gardou
bbe47e61b1
|CMAKE] Use ExternalProject for host-tools build
2020-10-22 09:31:11 +02:00
Jérôme Gardou
00ed72d7e8
[CMAKE] Get rid of add_compile_flags
...
Use add_compile_options and the like instead
2020-10-20 21:44:54 +02:00
Jérôme Gardou
84621b3634
[CMAKE] Get rid of replace_compiler_option macro
...
This is not used anymore
2020-10-20 21:44:54 +02:00
Jérôme Gardou
683489ccf1
[CMAKE] Use -ffile-prefix-map for GCC builds
...
And also simplify the __RELFILE__ macro definition for the other cases
2020-10-20 21:44:54 +02:00
Jérôme Gardou
ed61512236
[CMAKE] Get rid of add_compile_flags_language macro
...
in favor of add_compile_options and the like with generator expressions
Also take this as an opportunity to remove the C++11 standard hack, GCC 8 now defaults to C++14
2020-10-20 21:44:54 +02:00
Jérôme Gardou
7e116f0ef3
[CMAKE] Get rid of replace_compile_flags
...
Introduce a finer-grained remove_target_compile_option instead
2020-10-20 21:44:54 +02:00
Jérôme Gardou
b52fa999eb
[CMAKE] Get rid of replace_compile_flags_language macro
...
It was only used in the set_cpp macro
2020-10-20 21:44:54 +02:00
Jérôme Gardou
8b28f8d9ba
[CMAKE] Allow INTERFACE libraries for MSVC IDEs
2020-10-20 21:44:54 +02:00
Jérôme Gardou
d6ea8659c8
[CMAKE] Get rid of the set_cpp macro
...
Instead of messing with global variables and the like, we introduce two target properties:
- WITH_CXX_EXCEPTIONS: if you want to use C++ exceptions
- WITH_CXX_RTTI: if you need RTTI in your module
You can use the newly introduced set_target_cpp_properties function, with WITH_EXCEPTIONS and WITH_RTTI arguments
We also introduce two libraries :
- cpprt: for C++ runtime routines
- cppstl: for the C++ standard template library
NB: On GCC, this requires to create imported libraries with the related built-in libraries:libsupc++, limingwex, libstdc++
Finally, we manage the relevant flags with the ad-hoc generator expressions
So, if you don't need exceptions, nor RTTI, nor use any runtime at all: you simply have nothing else to do than add your C++ file to your module
2020-10-20 21:44:54 +02:00
Jérôme Gardou
d0ed4fdb3a
[CMAKE] Fix generation of UTF-16 inf file
2020-10-20 15:21:00 +02:00
Timo Kreuzer
280aa21179
[CMAKE] Add baseaddress_msvc_x64.cmake
2020-09-20 23:08:17 +02:00
Mark Jansen
5730485a51
[SDK] Add dummy import lib files for MSVC_IDE build,
...
to work around a CMake bug generating broken dll targets
ROSBE-159
2020-09-20 19:18:15 +02:00
Joachim Henze
a4fee60e46
[CMAKE] Fix regressions CORE-17243 & CORE-17246
...
By sledge-hammer-reverting of
0.4.15-dev-689-g
7ffb6a09c3
and 0.4.15-dev-688-g
1234223f41
Sorry, but the negative impact for other devs and the
whole project are just unbearable.
Stuff got committed meanwhile even so I had to act.
The improvements may be reapplied later when the
negative consequences are under control.
2020-09-06 04:35:33 +02:00
Jérôme Gardou
7ffb6a09c3
[CMAKE] Overhaul creation from CD
...
Get rid of global properties and use a target-level properties instead
Limit temporary files by using cmake-generator expressions instead
Avoid function calls at the end configuration, use file(GENERATE) idiom instead
2020-09-02 11:02:44 +02:00
Thomas Faber
a81788e5bf
[CMAKE] Explicitly target Pentium for clang. CORE-17202
...
The MSVC-compatible /arch:IA32 option switches to i386 mode, which
makes clang avoid 486/Pentium-specific instructions, e.g. cmpxchg8b.
2020-08-23 12:07:37 +02:00
Thomas Faber
8275c1f991
[CMAKE] Use a space after /fo for the RC compiler to make clang happy. CORE-17202
2020-08-23 12:07:37 +02:00
Dmitry Borisov
27cd9eaf1a
[PC98VID] Add framebuffer video miniport driver for NEC PC-98 series ( #3040 )
...
This adds generic graphics support on PC-9821.
2020-08-19 00:50:08 +03:00
Mark Jansen
7dc306c440
[SDK] Fix host-tools build from visual studio ide in Release
2020-07-09 21:32:53 +02:00
Serge Gautherie
aae5cd8ea2
[CMAKE] Remove obsolete 'GCC_VERSION' checks ( #2962 )
...
following upgrade to RosBE 2.2.0 support and GCC 8.4.
2020-07-04 15:33:50 +02:00
Thomas Faber
dd6eb40381
[CMAKE] Remove work-arounds for old CMake versions. CORE-17109
2020-06-20 15:25:29 +02:00
Thomas Faber
add677e45b
[CMAKE] Bump minimum to 3.17, no longer require -ReactOS build. CORE-17109
2020-06-20 15:25:28 +02:00
Thomas Faber
3169c94e06
[CMAKE] Set CMAKE_MSVC_RUNTIME_LIBRARY to satisfy CMP0091. CORE-17109
...
We use /NODEFAULTLIB, and consequently also don't want CMake to add
a default library for us.
2020-06-20 15:25:27 +02:00
Thomas Faber
dadc59f135
[CMAKE] Mark host tools as byproducts. CORE-17109
2020-06-20 15:25:27 +02:00
Amine Khaldi
139a3d6661
[CMAKE] Implement PCH builds with target_precompile_headers. CORE-16905
2020-06-06 21:58:41 +03:00
Serge Gautherie
11345aedd8
[FORMATTING] [CMAKE] Remove space in 'if (' ( #2847 )
2020-05-26 20:24:02 +02:00