Commit graph

54 commits

Author SHA1 Message Date
Jérôme Gardou cbb6d64036 [CMAKE]
- Use cache to decide whether we use precompiled headers or not.

svn path=/trunk/; revision=63799
2014-08-04 11:05:09 +00:00
Kamil Hornicek 9e5dfae220 [CMAKE/MSVC]
- define _ALLOW_KEYWORD_MACROS for VS11 too

svn path=/trunk/; revision=63376
2014-05-19 20:28:35 +00:00
Amine Khaldi ac454fae84 [CMAKE/MSVC]
* Define _ALLOW_KEYWORD_MACROS to get the news MSVC toolchain to allow us to redefine inline (it became a keyword). Reported by David Quintana.

svn path=/trunk/; revision=63353
2014-05-18 14:39:03 +00:00
Thomas Faber 9a02edda36 [UTF16LE]
- Add to build
CORE-8221

svn path=/trunk/; revision=63278
2014-05-13 20:00:51 +00:00
Amine Khaldi 4916e626c0 [CMAKE]
* Disable PCH in Clang builds. We'll inspect this later.

svn path=/trunk/; revision=62391
2014-03-02 20:47:34 +00:00
Amine Khaldi 8bc446901a [CMAKE]
* Set the default PCH value only if it's not already set.

svn path=/trunk/; revision=62241
2014-02-18 11:12:26 +00:00
Amine Khaldi 870e60a3df [CMAKE]
* Set the new ninja deps mode as on by default for RosBE 2.1.1 users.
CORE-7887

svn path=/trunk/; revision=62153
2014-02-13 22:24:30 +00:00
Amine Khaldi 83164605f5 [CMAKE]
* Set PCH as on by default for RosBE 2.1.1 users.
* You guys no longer need to alter anything now, just grab RosBE 2.1.1 and have fun ;)
CORE-7716

svn path=/trunk/; revision=62151
2014-02-13 21:42:05 +00:00
Amine Khaldi e0fbecaa35 [CMAKE]
* Speedup GCC and MSVC builds by making use of the new ninja deps mode.
* It will be in effect once you update to RosBE 2.1.1. It's disabled now in the transition phase.
CORE-7887

svn path=/trunk/; revision=62137
2014-02-12 19:36:19 +00:00
Amine Khaldi f6955a0388 [CMAKE]
* Disable the generation of unneeded installation rules. This speeds up build and reduces the build folder files count/overall size.
* It will be in effect once you update to RosBE 2.1.1.
CORE-7888 #resolve

svn path=/trunk/; revision=62136
2014-02-12 19:25:45 +00:00
Jérôme Gardou 1a41980788 [INCLUDE/CRT]
- add intrin.h which redirects to compiler specific version
 - Do not add a global include directory for two headers
 - Update float.h accordingly

svn path=/trunk/; revision=61450
2013-12-27 16:25:52 +00:00
Amine Khaldi 61fde33ba7 [CMAKE]
* Add a proper way to enable/disable PSEH3.

svn path=/trunk/; revision=60190
2013-09-17 22:31:33 +00:00
Amine Khaldi 1f1d1b19dc [WPP]
* Introduce wpp as a cross compiling lib, and rename out host one as wpphost.
[WIDL]
* Update the link reference to the host wpp.
[PSDK]
* Update d3d9types.h and import d3d11shader.h and d3dcompiler.h from Wine.
[DXGUID]
* Introduce dx10guid to contain some GUIDs needed only by Wine DirectX modules.
[D3DCOMPILER_43]
* Import from Wine 1.7.1.

svn path=/trunk/; revision=60098
2013-09-14 10:30:44 +00:00
Cameron Gutman 4ed049cc7b [CMAKE]
- Define i386 on x86 MSVC builds
- Probably fixes the infamous MSVC networking issues caused by tcpip.h assuming it was a big-endian platform and never byte-swapping anything
[TCPIP][LAN]
- Fix byteswapping on AMD64 and ARM builds too

svn path=/trunk/; revision=59704
2013-08-12 01:12:25 +00:00
Amine Khaldi fe0958fb25 * Improve the way we create bootcd, livecd and bootcdregtest. The effort results in ~28% *smaller* build folder, and *much* faster generation of the ISOs.
[CDMAKE]
* Introduce a way to create an iso using a file map instead of the current on-disk layout. This allows us to massively reduce the IO and the disk space needed to perform the creation of the 3 ISOs, and at the same time speed up the process. Brought to you by Art Yerkes (arty) with review/bug fix by Thomas Faber.
[CMAKE]
* Leverage the newly introduced cdmake feature.
* Silence cdmake verbosity.
* Write the contents of the file lists at once, instead of appending to it one item by one.
[VGAFONTS]
* Don't include the cab file twice.

svn path=/trunk/; revision=59547
2013-07-21 13:33:03 +00:00
Thomas Faber 29cb1bacd5 [CMAKE]
- Fix MSVC 64 bit host-tools build

svn path=/trunk/; revision=59536
2013-07-20 11:07:30 +00:00
Amine Khaldi 4f0694e3af * Improve the way we create rossym debug info. The effort results in ~85% *smaller* build folder with ninja all with no code changes.
[DBGHELPHOST]
* Introduce a self-contained, static library version of dbghelp, in order to leverage its PE DWARF support. Thanks to Jerome Gardou for his work on the compatibility layer, and to Thomas Faber for helping me with the review/improvements.
* Unify the new host lib with the existing dll codebase using preprocessor conditions. This prevents code duplication.
* Skip as much unneeded functionality as possible when compiling dbghelphost to keep it light and straight to the point.
[RSYM]
* Introduce the required functions that allow parsing DWARF (using dbghelphost) and using it (along with coff symbols) to create the rossym debug info. Brought to you by Awesome Arty with some bugfixes from Jerome Gardou. Many thanks to Thomas Faber for assisting me with the testing/bug hunting.
[CMAKE/GCC]
* Introduce a combination of dwarf and debug emission flags that ensure the smallest debug info size among all the possible options we have.
* Introduce compressed debug sections that I already included the support for in RosBE 2.1. Thanks to the mingw-w64 folks (Kai Tietz) for the patch.
* Don't compress debug sections of C++ modules for now due to a bug in the toolchain that leads to spamming the build at link time with a warning.
* Don't run rsym on the RC shared libraries. Thanks to Thomas Faber for spotting this.
[DBGHELP]
* Update the ros diff to reflect the changes introduced by the dbghelphost unification.

svn path=/trunk/; revision=59505
2013-07-18 21:03:01 +00:00
Thomas Faber 50b0c50023 [CMAKE]
- Add configure support for VS 2013
- Add a missing /nologo to assembler invocations
- Properly complain about old MSVC versions during configure instead of failing the build

svn path=/trunk/; revision=59488
2013-07-14 21:00:42 +00:00
Amine Khaldi 1d814c38a6 [QUARTZ]
* Sync with Wine 1.5.26.
[STRMBASE]
* Import from Wine 1.5.26.
[DXSDK]
* Remove a redundant (and outdated) strmif.idl.
* Update axextend.idl.
[PSDK]
* Update control.idl and strmif.idl.
* Correct the OVERLAPPED structure.
[CMAKE]
* Look for inclusions in psdk before dxsdk.
[DEVENUM]
* Adapt to the axextend.idl update.

svn path=/trunk/; revision=59265
2013-06-20 12:07:29 +00:00
Jérôme Gardou 45d6f4dc1b [CMAKE]
- put all debug symbols (MSVC) in the same directory.

svn path=/trunk/; revision=59175
2013-06-05 17:57:13 +00:00
Amine Khaldi 68e7f54bc1 * Exclude host tools when setting the default build type.
svn path=/trunk/; revision=57357
2012-09-21 14:35:19 +00:00
Amine Khaldi 6fbbda7beb [HOST-TOOLS/BIN2C]: Add bin2c host tool, to be used for embedding binary files inside C source code, by transforming them into a byte array. By Hermès Bélusca.
CORE-6653 #resolve Committed to trunk. Cheers ;)

svn path=/trunk/; revision=57296
2012-09-14 11:12:40 +00:00
Timo Kreuzer 59f075b683 [PSEH3]
Implement PSEH 3.0. Currently disabled by default. Dedicated to Amine Khaldi.

svn path=/trunk/; revision=57259
2012-09-09 21:12:00 +00:00
Amine Khaldi 8fc9d7dd58 [CMAKE]
* Remove the importlibs folder. It's not needed anymore. While we're here, it's worth noting that the use of link_directories is not recommended, you should use target_link_libraries with absolute paths for example.

svn path=/trunk/; revision=57238
2012-09-04 20:56:22 +00:00
Amine Khaldi 2a0e108e5b [CMAKE]
* Prefer STREQUAL over MATCHES since we're comparing with strings here. Brought to you by Hermès Bélusca.
See issue #7306 for more details.

svn path=/trunk/; revision=57181
2012-08-27 18:58:27 +00:00
Jérôme Gardou 10852819e3 [CMAKE]
- Get rid of __ROS_CMAKE__ definition

svn path=/trunk/; revision=57140
2012-08-23 11:30:26 +00:00
Amine Khaldi c3be8a39d4 [WIDL]
* Set the attribute before the variable in write_func_param_struct(). Should be sent upstream.
* Initialize in an MSVC compatible way. Should be sent upstream.
[REACTOS/IDLS]
* Use widl instead of midl in MSVC builds.

svn path=/trunk/; revision=57019
2012-08-01 23:25:06 +00:00
Timo Kreuzer f6b6eea643 [CMAKE]
- Fix issues with newer cmake versions (brought to you by Amine)
- Add support for ninja to configure script

svn path=/trunk/; revision=56788
2012-06-23 16:09:11 +00:00
Amine Khaldi 7e0cd3140c [WIN32SS]
* Initialize the subsystem restructure. Start by bringing-in gdi32 and user32. Brought to you by the awesome Subsystem Team.

svn path=/trunk/; revision=56305
2012-04-01 17:27:38 +00:00
Timo Kreuzer 21514a55e1 [CMAKE]
Seperate midl and widl files (currently files are simply copied)

svn path=/trunk/; revision=56277
2012-03-29 14:45:46 +00:00
Stefan Ginsberg 12d6452264 Build fix from the cmake noob.
svn path=/trunk/; revision=56091
2012-03-08 09:20:31 +00:00
Stefan Ginsberg 1016fc25ff - Fix DBG macro AGAIN which got broken during the switch to cmake. Checked build: DBG = 1, free build: DBG = 0. Noobs.
svn path=/trunk/; revision=56090
2012-03-08 09:18:28 +00:00
Rafal Harabien 2181eb4926 [CMAKE]
- Fix GCC warnings when building cmlib

svn path=/trunk/; revision=56057
2012-03-05 20:20:50 +00:00
Amine Khaldi c3baab78ea [CMAKE]
* Remove some accidental changes.
[INETCPL]
* Include the correct pt language rc file.

svn path=/trunk/; revision=55892
2012-02-27 22:52:09 +00:00
Amine Khaldi 5e9ad9f31b * ReactOS binaries hold resource files to *all* the languages we support, which increases their size, and increases the memory footprint, and on top of that they become useless as soon as you select a language in the 1st stage installer. Introduce a way to compile ros with one localization so that we can compile ReactOS with only one localization, which eliminates the problem mentioned above, and allows us to reduce the compile time, the disk space needed for build, and the runtime memory footprint.
* The default build will continue to include all the localizations, but you can set it otherwise through a cmake variable (I18N_LANG) at configure time.
* Brought to you by Team Localization (Kamil Hornicek and Amine Khaldi) ;)

svn path=/trunk/; revision=55891
2012-02-27 22:46:20 +00:00
Amine Khaldi 818418643e * Rbuild, our build system, has served us well so far, but its usefulness has since been vastly overshadowed by its awfulness. It's time to fix it.
svn path=/trunk/; revision=55855
2012-02-25 17:23:37 +00:00
Jérôme Gardou ddc66b9898 fix build, sorry...
svn path=/trunk/; revision=55779
2012-02-21 15:17:33 +00:00
Jérôme Gardou 78412e7ca0 [CMAKE]
- get rid of the no longer needed importlibs directory
 - exclude importlibs from all target in MSVC build

svn path=/trunk/; revision=55778
2012-02-21 15:03:19 +00:00
Rafal Harabien 71867403fd [CMAKE] - Add support for creating lnk files
svn path=/trunk/; revision=54513
2011-11-27 19:45:41 +00:00
Amine Khaldi 41fe0a5043 [CMAKE]
* Temporarily go back to using the ret^H^H^H previous way of using debug info. Build will, for example, be slower, take double the disk space it needs right now, but...
* Introduce __ROS_DWARF__ for the meaning __ROS_CMAKE__ implied previously.

svn path=/trunk/; revision=54055
2011-10-08 16:47:57 +00:00
Jérôme Gardou b0334ceb09 [CMAKE]
- add flags to ASM as well instead of hacking the compile rule
- remove -fPIC flag from ASM compile flags, (it's a cmake bug)
- enable languages before including compiler specific files.

svn path=/trunk/; revision=53567
2011-09-03 23:05:09 +00:00
Thomas Faber 427928c2a5 [CMAKE]
- Replace add_linkerflag and add_compiler_flags with their new equivalents add_target_link_flags/add_compile_flags
- Remove those now obsolete macros
- Use the new set_module_type to get rid of evil hacks for drivers without entry point (wmilib, drmk)

svn path=/trunk/; revision=53558
2011-09-03 18:59:14 +00:00
Jérôme Gardou 8e004513b0 [CMAKE][CMAKE]
- turn most macros in function 2/x.
- separate rpc server and client stubs, and generate them directly instead of using a library, so they got the flags that the module uses.
- commit forgotten file from r53088
- get rid of winesdk target, it's useless now

svn path=/trunk/; revision=53112
2011-08-07 00:53:19 +00:00
Amine Khaldi c036300525 [CMAKE]
* Update our asm support thanks to Jerome.
* Bring in CMakeDetermineCompilerId.cmake to make sure this will work for pretty much all systems.
* Disable the use of response files when you enable ccache.

svn path=/trunk/; revision=52873
2011-07-25 20:50:05 +00:00
Amine Khaldi 9622e8516f [CMAKE]
* Add a way to use WDK headers (psdk, crt and ddk) instead of ours. To use it, just alter USE_WDK_HEADERS in configure.cmd to be 1 instead of 0.

svn path=/trunk/; revision=52439
2011-06-24 12:08:57 +00:00
Amine Khaldi 583b4eb6ef [CMAKE]
* Add WIN32 and _WINDOWS definitions for i386 msvc builds.
* Skip some modules that do not compile, in msvc build.

svn path=/trunk/; revision=52418
2011-06-22 11:31:01 +00:00
Timo Kreuzer 301a62db3a [HOST]
Only use /include/host as include directory for host tools / libs.

svn path=/trunk/; revision=52240
2011-06-15 10:30:03 +00:00
Amine Khaldi 4c941247b4 [CMAKE]
* Move cmake files to the cmake folder.
* Rename msc.cmake to msvc.cmake and toolchain-mingw32.cmake to toolchain-gcc.cmake.
* Add compilerflags.cmake to group macros that handle different compiler flags.
* Move add_linkerflag and set_unicode macros to compilerflags.cmake. They were duplicated in gcc.cmake and msvc.cmake.
* Add add_compiler_flags macro to handle CMAKE_C_FLAGS and CMAKE_CXX_FLAGS properly, and replace add_definitions calls with add_compiler_flags calls when we're adding compiler flags, not definitions.
* Reorganize gcc.cmake to have compiler flags then linking and compiling rules.
* Move CMAKE_ASM_COMPILE_OBJECT out of toolchain-gcc.cmake into gcc.cmake and add ${CMAKE_C_FLAGS} to it, now that flags are properly set.
* Don't pass <FLAGS> (compiler flags) when linking.
* Without the (commented out) linker script flag, CMAKE_SHARED_LINKER_FLAGS_INIT is the same for both i386 and amd64. Deduplicate it.
* Fix CMAKE_C_STANDARD_LIBRARIES comment.
* Use <FLAGS> in msvc CMAKE_ASM_COMPILE_OBJECT instead of manual includes.
* Don't set ntdllsys linker language to C, it's an asm lib.
* Remove ros_cd.cmake as it's not needed anymore.
* Define _CRT_SECURE_NO_WARNINGS when compiling host tools with msvc.

svn path=/trunk/; revision=52210
2011-06-13 10:36:40 +00:00
Amine Khaldi 7d25a0c11b [CMAKE]
* Move CMAKE_RC_COMPILE_OBJECT and CMAKE_ASM_COMPILE_OBJECT to msc.cmake.
* Fix CMAKE_ASM_COMPILE_OBJECT to account for the needed includes and defines.
* Add CMAKE_ASM_CREATE_STATIC_LIBRARY to handle our asm static lib.
* Don't include chkstk_ms.s into chkstk and libcntpr for msvc.
* Add missing chkstk -> asm dependency.
* Don't make an assumption about the location of genincdata.dll.
* Move definition on top of the included cmake files in the root cmake file.
* This brings the VS solution to a working state, many modules can compile now.

svn path=/trunk/; revision=52190
2011-06-11 16:09:57 +00:00
Timo Kreuzer 65d0fe96c2 [BOOTSECTOR]
- export obj2bin on gcc builds, too
- Add new macro CreateBootSectorTarget2, which uses portable assembly and use it with isoboot.S. I will replace all bootsectors with the new code one at a time, and in the end we can eventually drop nmake
- add wrapper isobtrt.S, which defines ROS_REGTEST and includes isoboot.S

svn path=/trunk/; revision=52156
2011-06-09 13:56:44 +00:00