On 30-Jul-15 20:36, Bill Hoffman wrote:
On 7/30/2015 11:56 AM, Dan Kegel wrote:
I believe the latter, but not the former.
I never use the GUI, and consider the cache an anti-feature there solely
to support GUI users. It complicates my life, and I'd love to see it go.
It is certainly not there just for the GUI. Every try-compile, find_library, find_program result is stored there as well. If you did this each time, it would be not only slow to re-run a build, but it might come up with different answers each time. If it went it would complicate your life even more.
[...]
In what way do you think it is causing you trouble?


Here is an example:

    # CMakeLists.txt
    cmake_minimum_required(VERSION 3.0)
    project(Foo)

    if(A)
      set(B "Hello A" CACHE STRING "Do we use A?")
    else()
      set(B "There is no A" CACHE STRING "Do we use A?")
    endif()

User thinks: okay, if I set A=ON I will have B equal to "Hello A".

What user really have:

    > rm -rf _builds
    > cmake -H. -B_builds
    > cmake -H. -B_builds -DA=ON
    > grep '\<B\>' _builds/CMakeCache.txt
    B:STRING=There is no A

I'm not saying cache is a bad idea, I'm just saying that when users hit such kind of situations that's one of the reason why they said CMake is not a good script language. Just like CMake before CMP0054: user see `if("a" STREQUAL "b")` and think "okay, 'a' is not equal to 'b' so this condition is always false"... nope!

Ruslo
--

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:
http://public.kitware.com/mailman/listinfo/cmake

Reply via email to