[Cmake-commits] CMake branch, next, updated. v3.1.0-2074-ga785b96

Stephen Kelly steveire at gmail.com
Sat Jan 17 08:49:26 EST 2015


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMake".

The branch, next has been updated
       via  a785b969514ce61d9298050f8758e7c064cd1feb (commit)
       via  bcb04783f7abd1e7781eda7499b53118fdbe8000 (commit)
       via  536c535cb0cf245a1785d436b0662f7fe59ef1e4 (commit)
       via  5d57970dd9ddea70163bdd3c64fbf365a15af9fb (commit)
       via  69182ce4ed95c62d51e208c8620ff4e6599dee2e (commit)
       via  54156d723a3fde678ed7f884364ad0449d23ad2b (commit)
       via  d84d6ed409c663573a02efa7d2692b6829d27c46 (commit)
       via  7dcdfec97fdefa90bded7868a638277d7c9903f1 (commit)
      from  9fc3a06c31fe89f9ee3cebe9d4f971398a366633 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=a785b969514ce61d9298050f8758e7c064cd1feb
commit a785b969514ce61d9298050f8758e7c064cd1feb
Merge: 9fc3a06 bcb0478
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Sat Jan 17 08:49:25 2015 -0500
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Sat Jan 17 08:49:25 2015 -0500

    Merge topic 'SolarisStudio-compile-features' into next
    
    bcb04783 Features: Record for SolarisStudio 12.4.
    536c535c Features: Adjust cxx_variadic_templates unit test for SolarisStudio.
    5d57970d Features: Use variable in cxx_inheriting_constructors test.
    69182ce4 Features: Ensure that the cxx_auto_type test is correct.
    54156d72 WCDH: Generate per-language files in multi-file mode.
    d84d6ed4 WCDH: Allow compilers to specify features for one language but not the other.
    7dcdfec9 WCDH: Find a language-specific DetermineCompiler.cmake if present.


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=bcb04783f7abd1e7781eda7499b53118fdbe8000
commit bcb04783f7abd1e7781eda7499b53118fdbe8000
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Fri Jan 16 19:26:37 2015 +0100
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Sat Jan 17 14:48:28 2015 +0100

    Features: Record for SolarisStudio 12.4.
    
    It has similar C++11 capabilities compared to GCC 4.8.

diff --git a/Modules/Compiler/SunPro-CXX-FeatureTests.cmake b/Modules/Compiler/SunPro-CXX-FeatureTests.cmake
new file mode 100644
index 0000000..8e97e1d
--- /dev/null
+++ b/Modules/Compiler/SunPro-CXX-FeatureTests.cmake
@@ -0,0 +1,52 @@
+
+# Based on GNU 4.8.2
+# http://docs.oracle.com/cd/E37069_01/html/E37071/gncix.html
+# Reference: http://gcc.gnu.org/projects/cxx0x.html
+
+set(_cmake_oldestSupported "__SUNPRO_CC >= 0x5130")
+
+set(SolarisStudio124_CXX11 "(__SUNPRO_CC >= 0x5130) && __cplusplus >= 201103L")
+set(_cmake_feature_test_cxx_alignas "${SolarisStudio124_CXX11}")
+set(_cmake_feature_test_cxx_alignof "${SolarisStudio124_CXX11}")
+set(_cmake_feature_test_cxx_attributes "${SolarisStudio124_CXX11}")
+set(_cmake_feature_test_cxx_inheriting_constructors "${SolarisStudio124_CXX11}")
+set(_cmake_feature_test_cxx_thread_local "${SolarisStudio124_CXX11}")
+set(_cmake_feature_test_cxx_alias_templates "${SolarisStudio124_CXX11}")
+set(_cmake_feature_test_cxx_delegating_constructors "${SolarisStudio124_CXX11}")
+set(_cmake_feature_test_cxx_extended_friend_declarations "${SolarisStudio124_CXX11}")
+set(_cmake_feature_test_cxx_final "${SolarisStudio124_CXX11}")
+set(_cmake_feature_test_cxx_noexcept "${SolarisStudio124_CXX11}")
+set(_cmake_feature_test_cxx_nonstatic_member_init "${SolarisStudio124_CXX11}")
+set(_cmake_feature_test_cxx_override "${SolarisStudio124_CXX11}")
+set(_cmake_feature_test_cxx_constexpr "${SolarisStudio124_CXX11}")
+set(_cmake_feature_test_cxx_defaulted_move_initializers "${SolarisStudio124_CXX11}")
+set(_cmake_feature_test_cxx_enum_forward_declarations "${SolarisStudio124_CXX11}")
+set(_cmake_feature_test_cxx_nullptr "${SolarisStudio124_CXX11}")
+set(_cmake_feature_test_cxx_range_for "${SolarisStudio124_CXX11}")
+set(_cmake_feature_test_cxx_unrestricted_unions "${SolarisStudio124_CXX11}")
+set(_cmake_feature_test_cxx_explicit_conversions "${SolarisStudio124_CXX11}")
+set(_cmake_feature_test_cxx_lambdas "${SolarisStudio124_CXX11}")
+set(_cmake_feature_test_cxx_local_type_template_args "${SolarisStudio124_CXX11}")
+set(_cmake_feature_test_cxx_raw_string_literals "${SolarisStudio124_CXX11}")
+set(_cmake_feature_test_cxx_auto_type "${SolarisStudio124_CXX11}")
+set(_cmake_feature_test_cxx_defaulted_functions "${SolarisStudio124_CXX11}")
+set(_cmake_feature_test_cxx_deleted_functions "${SolarisStudio124_CXX11}")
+set(_cmake_feature_test_cxx_generalized_initializers "${SolarisStudio124_CXX11}")
+set(_cmake_feature_test_cxx_inline_namespaces "${SolarisStudio124_CXX11}")
+set(_cmake_feature_test_cxx_sizeof_member "${SolarisStudio124_CXX11}")
+set(_cmake_feature_test_cxx_strong_enums "${SolarisStudio124_CXX11}")
+set(_cmake_feature_test_cxx_trailing_return_types "${SolarisStudio124_CXX11}")
+set(_cmake_feature_test_cxx_unicode_literals "${SolarisStudio124_CXX11}")
+set(_cmake_feature_test_cxx_uniform_initialization "${SolarisStudio124_CXX11}")
+set(_cmake_feature_test_cxx_variadic_templates "${SolarisStudio124_CXX11}")
+set(_cmake_feature_test_cxx_decltype "${SolarisStudio124_CXX11}")
+set(_cmake_feature_test_cxx_default_function_template_args "${SolarisStudio124_CXX11}")
+set(_cmake_feature_test_cxx_long_long_type "${SolarisStudio124_CXX11}")
+set(_cmake_feature_test_cxx_right_angle_brackets "${SolarisStudio124_CXX11}")
+set(_cmake_feature_test_cxx_rvalue_references "${SolarisStudio124_CXX11}")
+set(_cmake_feature_test_cxx_static_assert "${SolarisStudio124_CXX11}")
+set(_cmake_feature_test_cxx_extern_templates "${SolarisStudio124_CXX11}")
+set(_cmake_feature_test_cxx_func_identifier "${SolarisStudio124_CXX11}")
+set(_cmake_feature_test_cxx_variadic_macros "${SolarisStudio124_CXX11}")
+
+set(_cmake_feature_test_cxx_template_template_parameters "${_cmake_oldestSupported} && __cplusplus")
diff --git a/Modules/Compiler/SunPro-CXX.cmake b/Modules/Compiler/SunPro-CXX.cmake
index 5968712..cb37713 100644
--- a/Modules/Compiler/SunPro-CXX.cmake
+++ b/Modules/Compiler/SunPro-CXX.cmake
@@ -31,3 +31,24 @@ set(CMAKE_CXX_CREATE_ASSEMBLY_SOURCE "<CMAKE_CXX_COMPILER> <FLAGS> -S <SOURCE> -
 set(CMAKE_CXX_CREATE_STATIC_LIBRARY
   "<CMAKE_CXX_COMPILER> -xar -o <TARGET> <OBJECTS> "
   "<CMAKE_RANLIB> <TARGET> ")
+
+if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5.13)
+  set(CMAKE_CXX11_STANDARD_COMPILE_OPTION "-std=c++11")
+  set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION "-std=c++11")
+endif()
+
+set(CMAKE_CXX_STANDARD_DEFAULT 98)
+
+macro(cmake_record_cxx_compile_features)
+  macro(_get_solaris_studio_features std_version list)
+    record_compiler_features(CXX "${std_version}" ${list})
+  endmacro()
+
+  set(_result 0)
+  if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5.13)
+    _get_solaris_studio_features(${CMAKE_CXX11_STANDARD_COMPILE_OPTION} CMAKE_CXX11_COMPILE_FEATURES)
+    if (_result EQUAL 0)
+      _get_solaris_studio_features("" CMAKE_CXX98_COMPILE_FEATURES)
+    endif()
+  endif()
+endmacro()
diff --git a/Modules/WriteCompilerDetectionHeader.cmake b/Modules/WriteCompilerDetectionHeader.cmake
index a6ff475..e81bc08 100644
--- a/Modules/WriteCompilerDetectionHeader.cmake
+++ b/Modules/WriteCompilerDetectionHeader.cmake
@@ -321,6 +321,7 @@ function(write_compiler_detection_header
     GNU
     Clang
     AppleClang
+    SunPro
   )
 
   set(_hex_compilers ADSP Borland Embarcadero SunPro)
diff --git a/Tests/CompileFeatures/CMakeLists.txt b/Tests/CompileFeatures/CMakeLists.txt
index 106f29c..182954e 100644
--- a/Tests/CompileFeatures/CMakeLists.txt
+++ b/Tests/CompileFeatures/CMakeLists.txt
@@ -51,6 +51,17 @@ if (CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang"
   )
 endif()
 
+if (CMAKE_CXX_COMPILER_ID STREQUAL SunPro)
+  list(REMOVE_ITEM CXX_non_features
+    cxx_attribute_deprecated
+    cxx_contextual_conversions
+    cxx_extended_friend_declarations
+    cxx_long_long_type
+    cxx_sizeof_member
+    cxx_variadic_macros
+  )
+endif()
+
 if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU"
     AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.8)
   # The cxx_alignof feature happens to work (for *this* testcase) with
@@ -188,6 +199,13 @@ if (CMAKE_CXX_COMPILE_FEATURES)
         -DEXPECT_INHERITING_CONSTRUCTORS_AND_FINAL=0
       )
     endif()
+  elseif (CMAKE_CXX_COMPILER_ID STREQUAL "SunPro")
+    add_definitions(
+      -DEXPECT_OVERRIDE_CONTROL=1
+      -DEXPECT_INHERITING_CONSTRUCTORS=1
+      -DEXPECT_FINAL=1
+      -DEXPECT_INHERITING_CONSTRUCTORS_AND_FINAL=1
+    )
   endif()
 
   add_executable(CompileFeaturesGenex genex_test.cpp)
diff --git a/Tests/Module/WriteCompilerDetectionHeader/CMakeLists.txt b/Tests/Module/WriteCompilerDetectionHeader/CMakeLists.txt
index 401de95..b725919 100644
--- a/Tests/Module/WriteCompilerDetectionHeader/CMakeLists.txt
+++ b/Tests/Module/WriteCompilerDetectionHeader/CMakeLists.txt
@@ -11,7 +11,7 @@ get_property(c_known_features GLOBAL PROPERTY CMAKE_C_KNOWN_FEATURES)
 write_compiler_detection_header(
   FILE "${CMAKE_CURRENT_BINARY_DIR}/test_compiler_detection.h"
   PREFIX TEST
-  COMPILERS GNU Clang AppleClang
+  COMPILERS GNU Clang AppleClang SunPro
   VERSION 3.1
   PROLOG "// something"
   EPILOG "// more"
@@ -58,7 +58,8 @@ endmacro()
 
 if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU"
     OR CMAKE_CXX_COMPILER_ID STREQUAL "Clang"
-    OR CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang")
+    OR CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang"
+    OR CMAKE_CXX_COMPILER_ID STREQUAL "SunPro")
   # False for C++98 mode.
   list(APPEND false_defs EXPECTED_COMPILER_CXX_DELEGATING_CONSTRUCTORS)
   list(APPEND false_defs EXPECTED_COMPILER_CXX_VARIADIC_TEMPLATES)
@@ -81,7 +82,7 @@ write_compiler_detection_header(
   PREFIX MULTI
   OUTPUT_FILES_VAR multi_files
   OUTPUT_DIR "${CMAKE_CURRENT_BINARY_DIR}/compiler_multi_files/compiler_support"
-  COMPILERS GNU Clang AppleClang
+  COMPILERS GNU Clang AppleClang SunPro
   VERSION 3.1
   FEATURES
     ${cxx_known_features} ${c_known_features}

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=536c535cb0cf245a1785d436b0662f7fe59ef1e4
commit 536c535cb0cf245a1785d436b0662f7fe59ef1e4
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Fri Jan 16 19:21:36 2015 +0100
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Sat Jan 17 14:48:27 2015 +0100

    Features: Adjust cxx_variadic_templates unit test for SolarisStudio.
    
    The change in commit 1f19ac4d (Features: Adjust cxx_variadic_templates
    unit test for GNU < 4.7., 2015-01-11) pacified GNU 4.6, but leaves
    SolarisStudio 12.4 complaining:
    
     "cxx_variadic_templates.cpp", line 5: Error: Partial specialization for Interface<Is...> has identical arguments.
     1 Error(s) detected.
    
    Implement a preprocessor test for using the partial specialization
    workaround needed by GNU 4.6.

diff --git a/Tests/CompileFeatures/cxx_variadic_templates.cpp b/Tests/CompileFeatures/cxx_variadic_templates.cpp
index a80e157..e1f641b 100644
--- a/Tests/CompileFeatures/cxx_variadic_templates.cpp
+++ b/Tests/CompileFeatures/cxx_variadic_templates.cpp
@@ -1,21 +1,30 @@
+#if defined(__GNUC__) && ((__GNUC__ * 100 + __GNUC_MINOR__) < 407)
+#define OLD_GNU
+#endif
+
+#ifdef OLD_GNU
 template<int... Is>
 struct Interface;
+#endif
 
-template<int I>
-struct Interface<I>
+template<int I, int... Is>
+struct Interface
+#ifdef OLD_GNU
+                <I, Is...>
+#endif
 {
   static int accumulate()
   {
-    return I;
+    return I + Interface<Is...>::accumulate();
   }
 };
 
-template<int I, int... Is>
-struct Interface<I, Is...>
+template<int I>
+struct Interface<I>
 {
   static int accumulate()
   {
-    return I + Interface<Is...>::accumulate();
+    return I;
   }
 };
 

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=5d57970dd9ddea70163bdd3c64fbf365a15af9fb
commit 5d57970dd9ddea70163bdd3c64fbf365a15af9fb
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Mon Jan 12 21:49:56 2015 +0100
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Sat Jan 17 14:48:27 2015 +0100

    Features: Use variable in cxx_inheriting_constructors test.
    
    Avoid warning with SolarisStudio.

diff --git a/Tests/CompileFeatures/cxx_inheriting_constructors.cpp b/Tests/CompileFeatures/cxx_inheriting_constructors.cpp
index a83b624..cfce880 100644
--- a/Tests/CompileFeatures/cxx_inheriting_constructors.cpp
+++ b/Tests/CompileFeatures/cxx_inheriting_constructors.cpp
@@ -13,6 +13,6 @@ struct B : public A
 
 void someFunc()
 {
-  int i;
+  int i = 0;
   B b(i);
 }

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=69182ce4ed95c62d51e208c8620ff4e6599dee2e
commit 69182ce4ed95c62d51e208c8620ff4e6599dee2e
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Mon Jan 12 21:47:01 2015 +0100
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Sat Jan 17 14:48:27 2015 +0100

    Features: Ensure that the cxx_auto_type test is correct.
    
    SolarisStudio considers 'auto' to be a storage class specifier in
    C++98 mode (as appropriate), and considers variables without a specified
    type to be of type int.  So, it treats
    
     auto x = 3.14;
    
    as
    
     auto int x = 3.14;
    
    which in C++98 mode is equivalent to
    
     int x = 3.14;
    
    and it does not fail to compile as expected.
    
    Change the test to use a reference so that the type must be known.

diff --git a/Tests/CompileFeatures/cxx_auto_type.cpp b/Tests/CompileFeatures/cxx_auto_type.cpp
index 7dbf04f..1f36a79 100644
--- a/Tests/CompileFeatures/cxx_auto_type.cpp
+++ b/Tests/CompileFeatures/cxx_auto_type.cpp
@@ -1,5 +1,12 @@
 
+double foo_ = 3.14;
+
+double& foo()
+{
+  return foo_;
+}
+
 void someFunc()
 {
-  auto x = 3.14;
+  auto& x = foo();
 }

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=54156d723a3fde678ed7f884364ad0449d23ad2b
commit 54156d723a3fde678ed7f884364ad0449d23ad2b
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Sat Jan 17 14:42:08 2015 +0100
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Sat Jan 17 14:48:27 2015 +0100

    WCDH: Generate per-language files in multi-file mode.
    
    Otherwise we generate defines for C/CXX features unguarded by the presence of
    the __cplusplus macro and available to the wrong compiler.

diff --git a/Modules/WriteCompilerDetectionHeader.cmake b/Modules/WriteCompilerDetectionHeader.cmake
index d9ab9fb..a6ff475 100644
--- a/Modules/WriteCompilerDetectionHeader.cmake
+++ b/Modules/WriteCompilerDetectionHeader.cmake
@@ -419,12 +419,12 @@ function(write_compiler_detection_header
       set(file_content "${file_content}\n#  ${pp_if} ${prefix_arg}_COMPILER_IS_${compiler}\n")
 
       if(_WCD_OUTPUT_FILES_VAR)
-        set(compile_file_name "${_WCD_OUTPUT_DIR}${prefix_arg}_COMPILER_INFO_${compiler}.h")
+        set(compile_file_name "${_WCD_OUTPUT_DIR}${prefix_arg}_COMPILER_INFO_${compiler}_${_lang}.h")
         set(file_content "${file_content}\n#    include \"${compile_file_name}\"\n")
       endif()
 
       if(_WCD_OUTPUT_FILES_VAR)
-        set(compiler_file_content compiler_file_content_${compiler})
+        set(compiler_file_content compiler_file_content_${compiler}_${_lang})
       else()
         set(compiler_file_content file_content)
       endif()
@@ -627,16 +627,20 @@ function(write_compiler_detection_header
 
   if(_WCD_OUTPUT_FILES_VAR)
     foreach(compiler ${_WCD_COMPILERS})
-      set(CMAKE_CONFIGURABLE_FILE_CONTENT "${compiler_file_content_}")
-      set(CMAKE_CONFIGURABLE_FILE_CONTENT "${CMAKE_CONFIGURABLE_FILE_CONTENT}${compiler_file_content_${compiler}}")
-
-      set(compile_file_name "${_WCD_OUTPUT_DIR}${prefix_arg}_COMPILER_INFO_${compiler}.h")
-      set(full_path "${main_file_dir}/${compile_file_name}")
-      list(APPEND ${_WCD_OUTPUT_FILES_VAR} ${full_path})
-      configure_file("${CMAKE_ROOT}/Modules/CMakeConfigurableFile.in"
-        "${full_path}"
-        @ONLY
-      )
+      foreach(_lang ${_langs})
+        if(compiler_file_content_${compiler}_${_lang})
+          set(CMAKE_CONFIGURABLE_FILE_CONTENT "${compiler_file_content_}")
+          set(CMAKE_CONFIGURABLE_FILE_CONTENT "${CMAKE_CONFIGURABLE_FILE_CONTENT}${compiler_file_content_${compiler}_${_lang}}")
+
+          set(compile_file_name "${_WCD_OUTPUT_DIR}${prefix_arg}_COMPILER_INFO_${compiler}_${_lang}.h")
+          set(full_path "${main_file_dir}/${compile_file_name}")
+          list(APPEND ${_WCD_OUTPUT_FILES_VAR} ${full_path})
+          configure_file("${CMAKE_ROOT}/Modules/CMakeConfigurableFile.in"
+            "${full_path}"
+            @ONLY
+          )
+        endif()
+      endforeach()
     endforeach()
     set(${_WCD_OUTPUT_FILES_VAR} ${${_WCD_OUTPUT_FILES_VAR}} PARENT_SCOPE)
   endif()

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=d84d6ed409c663573a02efa7d2692b6829d27c46
commit d84d6ed409c663573a02efa7d2692b6829d27c46
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Sat Jan 17 14:10:26 2015 +0100
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Sat Jan 17 14:48:27 2015 +0100

    WCDH: Allow compilers to specify features for one language but not the other.

diff --git a/Modules/WriteCompilerDetectionHeader.cmake b/Modules/WriteCompilerDetectionHeader.cmake
index 0464e66..d9ab9fb 100644
--- a/Modules/WriteCompilerDetectionHeader.cmake
+++ b/Modules/WriteCompilerDetectionHeader.cmake
@@ -386,6 +386,13 @@ function(write_compiler_detection_header
   endif()
 
   foreach(_lang ${_langs})
+    set(target_compilers)
+    foreach(compiler ${_WCD_COMPILERS})
+      _load_compiler_variables(${compiler} ${_lang} ${${_lang}_features})
+      if(_cmake_oldestSupported_${compiler})
+        list(APPEND target_compilers ${compiler})
+      endif()
+    endforeach()
 
     get_property(known_features GLOBAL PROPERTY CMAKE_${_lang}_KNOWN_FEATURES)
     foreach(feature ${${_lang}_features})
@@ -408,8 +415,7 @@ function(write_compiler_detection_header
     set(file_content "${file_content}${ID_CONTENT}\n")
 
     set(pp_if "if")
-    foreach(compiler ${_WCD_COMPILERS})
-      _load_compiler_variables(${compiler} ${_lang} ${${_lang}_features})
+    foreach(compiler ${target_compilers})
       set(file_content "${file_content}\n#  ${pp_if} ${prefix_arg}_COMPILER_IS_${compiler}\n")
 
       if(_WCD_OUTPUT_FILES_VAR)

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=7dcdfec97fdefa90bded7868a638277d7c9903f1
commit 7dcdfec97fdefa90bded7868a638277d7c9903f1
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Sat Jan 17 14:08:47 2015 +0100
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Sat Jan 17 14:48:27 2015 +0100

    WCDH: Find a language-specific DetermineCompiler.cmake if present.
    
    The SolarisStudio compiler module uses language specific files.

diff --git a/Modules/WriteCompilerDetectionHeader.cmake b/Modules/WriteCompilerDetectionHeader.cmake
index d61358f..0464e66 100644
--- a/Modules/WriteCompilerDetectionHeader.cmake
+++ b/Modules/WriteCompilerDetectionHeader.cmake
@@ -234,7 +234,11 @@ function(_load_compiler_variables CompilerId lang)
   foreach(feature ${ARGN})
     set(_cmake_feature_test_${CompilerId}_${feature} ${_cmake_feature_test_${feature}} PARENT_SCOPE)
   endforeach()
-  include("${CMAKE_ROOT}/Modules/Compiler/${CompilerId}-DetermineCompiler.cmake" OPTIONAL)
+  include("${CMAKE_ROOT}/Modules/Compiler/${CompilerId}-${lang}-DetermineCompiler.cmake" OPTIONAL
+      RESULT_VARIABLE determinedCompiler)
+  if (NOT determinedCompiler)
+    include("${CMAKE_ROOT}/Modules/Compiler/${CompilerId}-DetermineCompiler.cmake" OPTIONAL)
+  endif()
   set(_compiler_id_version_compute_${CompilerId} ${_compiler_id_version_compute} PARENT_SCOPE)
 endfunction()
 

-----------------------------------------------------------------------

Summary of changes:


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list