The only project with Win32-specific setting is PngComponents (actually also tb2kdsgn and tbxdsgn - but we do not plan to build IDE-only packages for 64-bit atm)
Bde namespace removed (we do not use it)
IDE insists on AppDPIAwarenessMode from final binary projects and VerInfo_Locale in all projects
Dropping Manifest_File from library projects
Unifom first PropertyGroup ordering
Consistently placing both Import's at the end
Now IDE does not modify the project files when options are opened, except for reorderring of files and adding Excluded_Packages (which we undo before commit).
Except for DScpComp project, to which is adds an empty Cfg_1_Win32 section for some reason.
Source commit: c1bf6332ac63752b5c23ded3275167f00508776e
Hides some OpenSSL code that produces warnings when compiling with bcc64 (e.g. assigning SOCKET to int in bio_sock.c)
Source commit: 03f63be5c4500d9ba73f740ec3b696bc987239a0
Note regarding OpenSSL: With sources in different folder and lack of advanced rule in Borland makefile, it is not possible to use batch compilation with rule-based make file. Instead sources are explicitly (re)compiled in the library rule
Using 8 processes (higher number does not bring significant improvement)
Btw, so it was not true that Clang needs separate commandline for each file (see 17c5d4fa)
------
Timing statistics (times are the lowest out of few runs)
IDE WinSCP.cbproj recompile (i.e without thirdparty and components)
Classic 0:55
+PCH 0:39
Clang 2:53
+Batch 2:53
+OOP 2:56
+Batch+OOP 2:57
+B+OOP=2 1:51
+B+OOP=4 1:19
+B+OOP=8 1:05
+B+OOP=12 0:59
+B+OOP=16 1:00
thirdparty:
classic 2:35
clang 2:24
+8 0:49
build.bat:
classic 11:06
clang+8 8:38
Source commit: 1e073fb3df6a6f2c7f24de82d39fae6b1fc47367
- regarding the ILINK_LibraryPath for Cfg_1_Win32 (Debug):
Win32\Debug (not only Win32c\Debug) needs to be before Win32c\Release, as win32c does not include debug builds of Pascal code - so without that VCL debugging won't work
- IDE insist on adding CC_Suffix to all projects once switched to Clang, although it is only used in WinSCP.cbproj
- UNICODE define: Not needed for build (it's implicit), but CodeInsight does not know it it somehow
Source commit: da06d73eb86caff5ca9cac0185bed54da0da8f07
Comments:
- .res files seem to be linked automatically, so explicit entries in project files caused duplicates
- JCL updated for compatibility with BCB11 (jcld28win32.inc obtained by running JCJ installer [uninstalled afterwards])
Source commit: ec28d10a0bbb346ed2bb3940aed37e777342e663
Adding all missing files.
Removing files that should not have been added by "OpenSSL 3.1.0".
All generated files are stored in repository, not generated on compile time + The templates are not in repository (the way we already did with the .asm files).
Some of the removed files might not have been needed anymore even before upgrade to OpenSSL 3.
So Perl is still needed for the generation only, not for the build.
Source commit: 53cb910ec00828fe1b1eefa6abf04fac3a4110db
(instead of manually storing it to C++Builder installation folder)
Now always doing release build – preventing debug code from being used when building debug version of the main code by modifying the headers accordingly.
+ Avoiding warnings when building a fresh library (as that will now break the build, while before we ignored the warnings during manual build)
Source commit: 391c641d906cfd62fd1e1a91c3d358520dc13c5b