By using multiple build environments, I mean multiple build directories as
well as controlled environment for each of them.
If you have multiple compilers or even multiple versions of a compiler, by
managing carefully environment variables (i.e. PATH variable for example)
by using some bash functions, you can easily ensure to use always the
correct compiler for each build environment.


Le mer. 6 juin 2018 à 16:50, René J. V. Bertin <rjvber...@gmail.com> a
écrit :

> Marc CHEVRIER wrote:
>
> > You can easily avoid this bad experience by using different builds
> > environments : one per compiler !
>
>
> You mean one build directory per compiler? That can be very
> disk-expensive, and
> it doesn't solve the issue (e.g. you clone an environment and then change
> the
> compiler - why would that cause certain cached variables to be reset that
> don't
> need to be reset).
>
> Qt projects using CMake (e.g. KDE) are in a class of their own; Qt's auto-
> generation applications use a mix of hardcoded absolute and relative paths
> that
> can easily go wrong when you update something that invalidates certain
> paths.
>
> Or when you access your build directory in different ways. This is a bit
> of a
> different issue, but suppose you have directories:
>
> /a/b/c/d/e/f/projectA/work/source
> /a/b/c/d/e/f/projectA/work/build
>
> and a symlink $HOME/projects/projectA -> /a/b/c/d/e/f/projectA
>
> Depending on shell and OS you may get surprises when you do things like
>
> %> cd $HOME/projects/
> %> (cd projectA/work/build ; cmake ../source)
> %> (cd /a/b/c/d/e/f/projectA/work/build ; make)
>
> Qt's auto-generated relative paths (in step 2) will be invalid in step 3
> if no
> path normalisation occurs, because of the different number of levels
> between the
> 2 access paths to the same working directory. Linux suffers from this, not
> the
> Mac OS.
>
> This is a cmake issue only insofar as cmake could prevent it by
> normalising the
> working dir always (make should probably do the same).
>
> R.
>
> --
>
> Powered by www.kitware.com
>
> Please keep messages on-topic and check the CMake FAQ at:
> http://www.cmake.org/Wiki/CMake_FAQ
>
> Kitware offers various services to support the CMake community. For more
> information on each offering, please visit:
>
> CMake Support: http://cmake.org/cmake/help/support.html
> CMake Consulting: http://cmake.org/cmake/help/consulting.html
> CMake Training Courses: http://cmake.org/cmake/help/training.html
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Follow this link to subscribe/unsubscribe:
> https://cmake.org/mailman/listinfo/cmake
>
-- 

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
https://cmake.org/mailman/listinfo/cmake

Reply via email to