I&#39;m trying to set the CFLAGS/CXXFLAGS for a project to values that depend on the compiler (and relative version) in use and the system CPU, detected through the kwsys facilities, like this:<br><br><br>cmake_minimum_required (VERSION 2.6)<br>
<br>project(Dummy)<br><br>SET(KWSYS_NAMESPACE sys_info)<br>SET(KWSYS_USE_FundamentalType 1) <br>SET(KWSYS_USE_Process 1) <br>SET(KWSYS_USE_SystemInformation 1)<br>SUBDIRS(kwsys)<br><br>INCLUDE_DIRECTORIES(${CMAKE_BINARY_DIR}/kwsys)<br>
<br>TRY_RUN(COMPILE_RESULT RUN_RESULT<br>        ${PROJECT_BINARY_DIR}/CMakeTmp<br>        ${PROJECT_SOURCE_DIR}/flags_main.cpp<br>        CMAKE_FLAGS -DINCLUDE_DIRECTORIES:STRING=${CMAKE_BINARY_DIR}/kwsys -DLINK_DIRECTORIES:STRING=${PROJECT_BINARY_DIR}/kwsys -DLINK_LIBRARIES:STRING=${KWSYS_NAMESPACE}<br>
        RUN_OUTPUT_VARIABLE RUN_OUTPUT)<br><br>[...]    # &lt;---- OVERRIDE CFLAGS HERE<br><br>SUBDIRS(project_src)<br><br><br>with flags_main.cpp producing the appropriate flags line.<br><br>The problem with this approach is that TRY_RUN only gets executed when make is invoked, and so far I haven&#39;t found a decent way of setting the flags so that the contents of project_src gets built with the correct flags straight away: using<br>
<br>SET(CMAKE_CXX_FLAGS_RELEASE ${RUN_OUTPUT} CACHE STRING blah FORCE)<br><br>won&#39;t work since it requires a (re)configuration to propagate the change, while splitting the project in two, with a binary that generates a default cache file to import with CMAKE_USER_MAKE_RULES_OVERRIDE doesn&#39;t seem an option either (too bloated as an approach, and it requires different scripts on different platforms).<br>
<br>Any suggestions?<br><br><br><br clear="all"><br>-- <br>Paolo Zani, PhD<br> VisLab.it - Artificial Vision and Intelligent Systems Lab.<br>Dipartimento di Ingegneria dell&#39;Informazione<br>Università di Parma<br>via G.P. Usberti 181/A<br>
I-43100  Parma - ITALY<br>web <a href="http://www.vislab.it/zani/">http://www.vislab.it/zani/</a><br>