| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 | 
							
- #
 
- # Helper macro allowing to check if the given flags are supported 
 
- # by the underlying build tool
 
- #
 
- # If the flag(s) is/are supported, they will be appended to the string identified by RESULT_VAR
 
- #
 
- # Usage:
 
- #   ctkFunctionCheckCompilerFlags(FLAGS_TO_CHECK VALID_FLAGS_VAR)
 
- #
 
- # Example:
 
- #
 
- #   set(myflags)
 
- #   ctkFunctionCheckCompilerFlags("-fprofile-arcs" myflags)
 
- #   message(1-myflags:${myflags})
 
- #   ctkFunctionCheckCompilerFlags("-fauto-bugfix" myflags)
 
- #   message(2-myflags:${myflags})
 
- #   ctkFunctionCheckCompilerFlags("-Wall" myflags)
 
- #   message(1-myflags:${myflags})
 
- #
 
- #   The output will be:
 
- #    1-myflags: -fprofile-arcs
 
- #    2-myflags: -fprofile-arcs
 
- #    3-myflags: -fprofile-arcs -Wall
 
- include(TestCXXAcceptsFlag)
 
- #! \ingroup CMakeUtilities
 
- function(ctkFunctionCheckCompilerFlags CXX_FLAG_TO_TEST RESULT_VAR)
 
-   
 
-   if(CXX_FLAG_TO_TEST STREQUAL "")
 
-     message(FATAL_ERROR "CXX_FLAG_TO_TEST shouldn't be empty")
 
-   endif()
 
-   
 
-   # Internally, the macro CMAKE_CXX_ACCEPTS_FLAG calls TRY_COMPILE. To avoid 
 
-   # the cost of compiling the test each time the project is configured, the variable set by 
 
-   # the macro is added to the cache so that following invocation of the macro with 
 
-   # the same variable name skip the compilation step. 
 
-   # For that same reason, ctkFunctionCheckCompilerFlags function appends a unique suffix to 
 
-   # the HAS_FLAG variable. This suffix is created using a 'clean version' of the flag to test.
 
-   string(REGEX REPLACE "-\\s\\$\\+\\*\\{\\}\\(\\)\\#" "" suffix ${CXX_FLAG_TO_TEST})
 
-   CHECK_CXX_ACCEPTS_FLAG(${CXX_FLAG_TO_TEST} HAS_FLAG_${suffix})
 
-   
 
-   if(HAS_FLAG_${suffix})
 
-     set(${RESULT_VAR} "${${RESULT_VAR}} ${CXX_FLAG_TO_TEST}" PARENT_SCOPE)
 
-   endif()
 
- endfunction()
 
 
  |