Overview
Examples
Screenshots
Comparisons
Applications
Download
Documentation
Tutorials
Bazaar
Status & Roadmap
FAQ
Authors & License
Forums
Funding Ultimate++
Search on this site
Search in forums












SourceForge.net Logo
Home » U++ TheIDE » U++ TheIDE: Compiling, Linking, Debugging of your packages » TheIDE precompiled headers: again
TheIDE precompiled headers: again [message #44139] Sun, 04 January 2015 07:47 Go to previous message
Shire is currently offline  Shire
Messages: 41
Registered: September 2006
Location: Russia, Yamal peninsula
Member
I wrote patch for proper PCH handling three years ago, but have no feedback yet.
Now TheIDE build system has global flag "Allow precompiled headers" per build method.

This is not good way. Let's examine why:

0. you cannot set PCH flag for specific package - it's global. PCH has effect only for frequent builds (1..5 changing packages, not all).
1. PCH is supported only by MSC Builder. GCH is not supported.
2. only <package name>.h header can be precompiled
3. any file in package must include it (see "add check" TODO's in source code)
4. PCH building at begin and not in parallel with other files
5. you cannot set specific defines or compiler options for some .cpp file
6. additional temporary .cpp file is created
7. PCH can be used only with BLITZ

My patch is more flexible:

0. PCH flag can be set per package (at Output mode package grid, near BLITZ checkbox). Now you can check it for current developing packages
1. PCH is supported by MSC (include v7.0) and GCC too (GCH)
2. any single header file can be used as precompiled (mark it by adding PCH compiler option at Package Organizer)
3. inclusion of PCH is made automatically ("-FI" for MSC and "-include" for GCC)
4. PCH builds in parallel with other files. When it built, it can be used
5. files with specific defines or compiler options are compiled without PCH
6. no additional source files is created (header compiles as is)
7. PCH can be used with or without BLITZ

There is only one breaking change: build-time defines bm* (bmYEAR, bmMONTH, bmDAY, bmHOUR, bmMINUTE, bmSECOND) are deprecated.

Working with PCH header is also simple:
http://shire.noip.me/upp/pch-step-1.jpg http://shire.noip.me/upp/pch-step-2.jpg

Marking header by compiler option is just workaround for package format compatibilty. In future, marker can be checkbox near "Optimize the file for speed".

Patch published on GitHub, also you can test prebuilt TheIDE binaries for Debian 7 x64 (GCC 4.7.2) or Win32 (MSC10)

[Updated on: Mon, 05 January 2015 14:01]

Report message to a moderator

 
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic: Debugging via ssh
Next Topic: Cannot Compile TheIDE with MSVC12
Goto Forum:
  


Current Time: Wed Apr 24 20:21:56 CEST 2024

Total time taken to generate the page: 0.02279 seconds