eranif / codelite

A multi purpose IDE specialized in C/C++/Rust/Python/PHP and Node.js. Written in C++
https://codelite.org
GNU General Public License v2.0
2.09k stars 448 forks source link

[Bug]: Codelite build breaks when not using precompiled headers #3308

Closed niclasr closed 5 months ago

niclasr commented 5 months ago

What happened?

Codelite build breaks due to missing declarations in various files when precompiled headers are not used.

Version

Self compiled

Operating system

Linux

Steps to reproduce

Add -DCMAKE_DISABLE_PRECOMPILE_HEADERS=ON to the cmake command line. Build. Watch it break.
Will send a pull request with fixes.

Relevant log output

file included from ../codelite/CodeLite/LINUX.hpp:4,
                 from ../codelite/CodeLite/LINUX.cpp:1:
../codelite/CodeLite/PlatformCommon.hpp:45:25: error: ‘wxArrayString’ does not name a type; did you mean ‘wxFormatString’?
   45 |     bool AnyWhich(const wxArrayString& commands, wxString* command_fullpath)
      |                         ^~~~~~~~~~~~~
      |                         wxFormatString
../codelite/CodeLite/PlatformCommon.hpp: In member function ‘bool PlatformCommon::AnyWhich(const int&, wxString*)’:
../codelite/CodeLite/PlatformCommon.hpp:47:31: error: ‘begin’ was not declared in this scope; did you mean ‘std::begin’?
   47 |         for(const auto& cmd : commands) {
      |                               ^~~~~~~~
      |                               std::begin
In file included from /usr/include/c++/13/vector:69,
                 from ../codelite/CodeLite/PlatformCommon.hpp:6:
/usr/include/c++/13/bits/range_access.h:114:37: note: ‘std::begin’ declared here
  114 |   template<typename _Tp> const _Tp* begin(const valarray<_Tp>&) noexcept;
      |                                     ^~~~~
../codelite/CodeLite/PlatformCommon.hpp:47:31: error: ‘end’ was not declared in this scope; did you mean ‘std::end’?
   47 |         for(const auto& cmd : commands) {
      |                               ^~~~~~~~
      |                               std::end
/usr/include/c++/13/bits/range_access.h:116:37: note: ‘std::end’ declared here
  116 |   template<typename _Tp> const _Tp* end(const valarray<_Tp>&) noexcept;