[CMake] Chicken and egg problem with cmake_minimum_required(...), project(...), and CMAKE_SYSTEM_NAME

Alan W. Irwin irwin at beluga.phys.uvic.ca
Fri May 15 16:37:50 EDT 2015


On 2015-05-15 14:48-0400 Brad King wrote:

> On 05/15/2015 02:26 PM, Alan W. Irwin wrote:
>> function(plplot_cmake_minimum_required)
>>     cmake_minimum_required(${ARGV})
>> endfunction(plplot_cmake_minimum_required)
>
> Help: Document behavior of cmake_minimum_required in a function
> http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=e5f8ead5

Thanks for inserting that clarification in the documentation.  Since
it appears from that new documentation that using
cmake_minimum_version inside a function is problematic, and I just
realized in any case I can use cmake_policy(VERSION 3.0.2) to set
uniform policy, our implementation of different CMake minimum versions
(but with uniform policy) for different platforms now boils down to

cmake_minimum_required(VERSION 3.0.2 FATAL_ERROR)
cmake_policy(VERSION 3.0.2)
project(plplot NONE)
if(NOT (CYGWIN OR CMAKE_SYSTEM_NAME STREQUAL "Linux") )
   # Latest CMake version as of 2015-05 for all platforms
   # other than Cygwin or Linux.
   cmake_minimum_required(VERSION 3.2.2 FATAL_ERROR)
   # Keep policy consistent for all platforms.
   cmake_policy(VERSION 3.0.2)
endif(NOT (CYGWIN OR CMAKE_SYSTEM_NAME STREQUAL "Linux") )
enable_language(C)

This form of startup logic appears to work fine on Linux, but I will
have to wait for a report from a PLplot developer with access to
Cygwin to confirm this form gets rid of the last of the Cygwin
spurious warnings.

Alan
__________________________
Alan W. Irwin

Astronomical research affiliation with Department of Physics and Astronomy,
University of Victoria (astrowww.phys.uvic.ca).

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.sf.net); 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
__________________________


More information about the CMake mailing list