[CMake] C++11 flag not being added
Roman Wüger
roman.wueger at gmx.at
Fri Oct 16 05:22:48 EDT 2015
Hi Petr,
you can download CMake from https://cmake.org/download/.
There are also prebuilt binaries available.
We use the *.sh files to install CMake on our linux servers.
.) Install CMake to /opt/cmake-3.4.2.
.) Create a symlink to /opt/cmake
.) Create another symlink from the /opt/cmake/bin/* to /usr/bin
With this solution you only need to update the first symlink if you want to upgrade/downgrade a CMake version.
Best Regards
Roman
> Am 16.10.2015 um 10:58 schrieb Petr Bena <benapetr at gmail.com>:
>
> If I did that nearly nobody would be able to compile my program as
> cmake >= 3.1 is extremely rare on most distributions. Even ubuntu's
> PPA builder has some ancient version.
>
>> On Fri, Oct 16, 2015 at 9:44 AM, Petr Kmoch <petr.kmoch at gmail.com> wrote:
>> Hi Petr.
>>
>> You're using a feature (`CMAKE_CXX_STANDARD`) introduced in CMake version
>> 3.1, so you should require a minimum version >= that.
>>
>> You can learn the version of CMake by running `cmake --version`
>>
>> Petr
>>
>>> On Thu, Oct 15, 2015 at 5:45 PM, Petr Bena <benapetr at gmail.com> wrote:
>>>
>>> What do you mean by "target" property? I don't see any target
>>> mentioned there. I don't have this line in there. I don't know which
>>> CMake this is, it failed on server we use for unit tests, but I have
>>> required min. version set to 2.8.7
>>>
>>>
>>>
>>> On Thu, Oct 15, 2015 at 5:41 PM, Matthew S Wallace
>>> <mwallace at ccmtrading.com> wrote:
>>>> What version of CMake are you using? I’m using 3.3.2. The only other
>>>> thing I did was:
>>>>
>>>> set_property(GLOBAL PROPERTY CXX_STANDARD_REQUIRED)
>>>>
>>>> I’m guessing this probably does nothing since it is probably a target
>>>> property.
>>>>
>>>> -Matt
>>>>
>>>>> On Oct 15, 2015, at 10:34 AM, Petr Bena <benapetr at gmail.com> wrote:
>>>>>
>>>>> Can you elaborate on it a bit?
>>>>>
>>>>> I put set(CMAKE_CXX_STANDARD 11) as first line of my CMakeLists and it
>>>>> still doesn't work, without the hack I used I get errors while
>>>>> compiling.
>>>>>
>>>>> Can you give me example file in which it works? I guess there is more
>>>>> needed for it to work.
>>>>>
>>>>> On Tue, Oct 13, 2015 at 7:12 PM, Matthew S Wallace
>>>>> <mwallace at ccmtrading.com> wrote:
>>>>>> Thanks, setting the global variable solved my issue.
>>>>>>
>>>>>> -Matt
>>>>>>
>>>>>>> On Oct 13, 2015, at 10:46 AM, Johannes Zarl-Zierl
>>>>>>> <johannes.zarl-zierl at jku.at> wrote:
>>>>>>>
>>>>>>> Hi,
>>>>>>>
>>>>>>> CXX_STANDARD is a target property, not a global one. You can either
>>>>>>> set
>>>>>>> CXX_STANDARD for every target that needs it, or set it globally by
>>>>>>> changing
>>>>>>> the default value.
>>>>>>>
>>>>>>> You can do the latter by setting the variable CMAKE_CXX_STANDARD
>>>>>>> before
>>>>>>> defining any target that depends on it:
>>>>>>>
>>>>>>> set(CMAKE_CXX_STANDARD 11)
>>>>>>>
>>>>>>> HTH,
>>>>>>> Johannes
>>>>>>>
>>>>>>>> On Tuesday 13 October 2015 10:22:36 Matthew S Wallace wrote:
>>>>>>>> I have the following two lines in my CMakeLists.txt
>>>>>>>>
>>>>>>>> set_property(GLOBAL PROPERTY CXX_STANDARD 11)
>>>>>>>> set_property(GLOBAL PROPERTY CXX_STANDARD_REQUIRED)
>>>>>>>>
>>>>>>>> However when compiling some of my source files, the -std=c++11 flag
>>>>>>>> is not
>>>>>>>> added.
>>>>>>>>
>>>>>>>> Just for good measure I added:
>>>>>>>> target_compile_features(my_target PRIVATE cxx_strong_enums) to the
>>>>>>>> target
>>>>>>>> that was having the problem.
>>>>>>>>
>>>>>>>> Not sure if it matters, but in this case the compile error I’m
>>>>>>>> getting is
>>>>>>>> complaining because I’m referencing a fully scoped enum. If I
>>>>>>>> explicitly
>>>>>>>> include -std=c++11 in my compile flags, everything works.
>>>>>>>>
>>>>>>>> I’m thinking I’m probably just misunderstanding how CXX_STANDARD
>>>>>>>> works, but
>>>>>>>> any help would be appreciated.
>>>>>>>>
>>>>>>>> -Matt
>>>>>>>
>>>>>>> --
>>>>>>>
>>>>>>> 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
>>>>>>
>>>>>> --
>>>>>>
>>>>>> 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
>>> --
>>>
>>> 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
> --
>
> 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
More information about the CMake
mailing list