Manually-specified variables were not used by the project

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Manually-specified variables were not used by the project

Haio Maio
Manually-specified variables were not used by the project
MY_VAR

when I call

cmake -DMY_VAR= ...


The goal is
if(NOT DEFINED MY_VAR)
...
else()
...
if()

in order to tell cmake over the command line what to do.

How to achieve this ?

--

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 | Threaded
Open this post in threaded view
|

Re: Manually-specified variables were not used by the project

Alan W. Irwin-2
On 2019-05-24 19:38+0200 Haio Maio wrote:

> Manually-specified variables were not used by the project
> MY_VAR
>
> when I call
>
> cmake -DMY_VAR= ...
>
>
> The goal is
> if(NOT DEFINED MY_VAR)
> ...
> else()
> ...
> if()
>
> in order to tell cmake over the command line what to do.
>
> How to achieve this ?

This functionality just works for me (using cmake version 3.13.4).

For example, here is a simple test case:

irwin@merlin> cat /tmp/CMakeLists.txt
if(NOT DEFINED MY_VAR)
   message(STATUS "MY_VAR is not DEFINED")
else()
   message(STATUS "MY_VAR is DEFINED")
endif()

irwin@merlin> cmake -P /tmp/CMakeLists.txt
-- MY_VAR is not DEFINED
irwin@merlin> cmake -DMY_VAR=OFF -P /tmp/CMakeLists.txt
-- MY_VAR is DEFINED
irwin@merlin> cmake -DMY_VAR=ON -P /tmp/CMakeLists.txt
-- MY_VAR is DEFINED

So just like the documentation says at <https://cmake.org/cmake/help/latest/command/if.html>
what is tested is whether *any* true or false value has been set.  What is more problematic
is how to make sure the variable is not set with the -D option, and the only way I
know how to do that is the first test above (i.e., do not use -DMY_VAR=??? at all).

I hope this simple example helps you to figure out what is going on with your more complex
example.

Alan
__________________________
Alan W. Irwin

Programming affiliations with the FreeEOS equation-of-state
implementation for stellar interiors (freeeos.sf.net); the Time
Ephemerides project (timeephem.sf.net); PLplot scientific plotting
software package (plplot.org); the libLASi project
(unifont.org/lasi); the Loads of Linux Links project (loll.sf.net);
and the Linux Brochure Project (lbproject.sf.net).
__________________________

Linux-powered Science
__________________________
--

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