Hi David
You have a number of options here:
1. You can pass the additional compile flag trough another variable
instead of trying to override CMAKE_CXX_FLAGS.
cmake .. -DFREEBSD_FLAG="-stdlib=libc++"
... then in CMakeLists.txt you can set the compile flags as follows:
set (CMAKE_CXX_FLAGS "-std=c++11 ${FREEBSD}")
When the FREBSD option isn't set, then the string would contain just
"-std=c++11 ".
2. Another way would be to set compile flags depending on the platform
you're compiling on (that works if you don't do cross compiling):
if ("${CMAKE_SYSTEM_NAME}" STREQUAL "FreeBSD")
set (CMAKE_CXX_FLAGS "-std=c++11 -stdlib=libc++")
else ()
set (CMAKE_CXX_FLAGS "-std=c++11")
endif ()
3. And the third option would be to also preserve the previous value of
CMAKE_CXX_FLAGS
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
... so now it doesn't get overriden!
Hope this helps!
-Cristi
On Tue Sep 17 12:40:31 2013, David Demelier wrote:
Hello,
I'm writing a C++11 project. To enable C++11 it requires some switches,
such as -std=c++11.
So for the moment, I have in my CMakeLists.txt:
set(CMAKE_CXX_FLAGS "-std=c++11")
So with that, I'm sure that any build configuration will add this.
However, with clang++, you need to pass an additional flag (for FreeBSD
especially): -stdlib=libc++.
So I would like to be able to do at command line:
cmake .. -DCMAKE_CXX_FLAGS="-std=c++11 -stdlib=libc++"
But with that, it just ignore my setting and take the one from the
CMakeLists.txt
What is the correct way to:
* Set CXX flags globally, for any type of configuration
* Let them be overriden?
Regards,
David.
--
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://www.cmake.org/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://www.cmake.org/mailman/listinfo/cmake