[CMake] Problem when using variable_watch with Visual Studio generator in 3.4.1

Yves Frederix yves.frederix+cmake at gmail.com
Thu Dec 10 07:26:35 EST 2015


After commenting out the call there is no error output:

  -- The CXX compiler identification is MSVC 17.0.61030.0
  -- Check for working CXX compiler using: Visual Studio 11 2012 Win64
  -- Check for working CXX compiler using: Visual Studio 11 2012 Win64 --
works
  -- Detecting CXX compiler ABI info
  -- Detecting CXX compiler ABI info - done
  -- Detecting CXX compile features
  -- Detecting CXX compile features - done
  -- Found PythonInterp: C:/Python27/python.exe (found version "2.7.10")
  -- Configuring done
  -- Generating done


Yves

On Thu, Dec 10, 2015 at 12:58 PM, David Cole <DLRdave at aol.com> wrote:

> Out of curiosity, what output do you get (with 3.4.1) when you comment out
> your call to variable_watch? Do you still get error output, but without
> strange symbols in it? Or is there no error output in that case?
>
>
> On Thursday, December 10, 2015, Yves Frederix <
> yves.frederix+cmake at gmail.com> wrote:
>
>> Hi all,
>>
>> I am experiencing problems during the CMake configure step when using
>> the function variable_watch. Consider the following minimal CMakeLists
>> file:
>>
>>   cmake_minimum_required(VERSION 3.4)
>>   project(test CXX)
>>
>>   function(myhook _variable _access _value _current_list_file _stack)
>>     if("${_value}" STREQUAL "")
>>       # Do nothing
>>     endif()
>>   endfunction()
>>
>>   variable_watch(CMAKE_CURRENT_LIST_DIR myhook)
>>   find_package(PythonInterp REQUIRED)
>>
>>
>> When configuring on Windows using CMake 3.4.1 with the Visual Studio
>> generator (I tried both VS2012 and VS2015), the process fails with an
>> error message (notice the strange symbols at the beginning of the line
>> mentioning FindPackageMessage.cmake):
>>
>>   -- Detecting CXX compile features - done
>> CMake Error at
>> C:/Tools/CMake_3.4.1/share/cmake-3.4/Modules/FindPackageHandleStandardArgs.cmake:142
>> (include):
>>   include could not find load file:
>>
>>     L☺/Tools/CMake_3.4.1/share/cmake-3.4/Modules/FindPackageMessage.cmake
>> Call Stack (most recent call first):
>>   C:/Tools/CMake_3.4.1/share/cmake-3.4/Modules/FindPythonInterp.cmake:161
>> (include)
>>   CMakeLists.txt:12 (find_package)
>>
>>
>>   CMake Error at
>>
>> C:/Tools/CMake_3.4.1/share/cmake-3.4/Modules/FindPackageHandleStandardArgs.cmake:379
>> (FIND_PACKAGE_MESSAGE):
>>   Unknown CMake command "FIND_PACKAGE_MESSAGE".
>>   Call Stack (most recent call first):
>>
>> C:/Tools/CMake_3.4.1/share/cmake-3.4/Modules/FindPythonInterp.cmake:162
>> (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
>>     CMakeLists.txt:12 (find_package)
>>
>>
>> I did some more testing, and the configuration step is successful when:
>> - using CMake 2.8.12 or 3.4.0
>> - using 3.4.1 (or older versions) on osx (I did not try linux)
>> - removing the 'CXX' in the project call or removing the project call
>> entirely
>> - removing the check for _value inside the function
>>
>> It seems that for some reason adding the watch (which actually only
>> does read-only access), the contents of the CMAKE_CURRENT_LIST_DIR
>> variable is messed up somehow. Could I have run into some corner case
>> behavior here?
>>
>> Maybe it is also useful to mention how I ended up in this situation.
>> My requirement was to run some custom code as the very last step of
>> the configure process. The solution I found was based on using
>> variable_watch (see
>>
>> http://stackoverflow.com/questions/15760580/execute-command-or-macro-in-cmake-as-last-step-before-configure-step-finishes#15824843
>> ),
>> but apparently this is not a very robust solution. Are there possibly
>> better ways of accomplishing the same thing?
>>
>> Thanks!
>>
>> Regards,
>> Yves
>> --
>>
>> 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
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/cmake/attachments/20151210/6a751a7e/attachment.html>


More information about the CMake mailing list