[Cmake-commits] CMake branch, next, updated. v2.8.8-3644-gbbff1c9

Stephen Kelly steveire at gmail.com
Fri Aug 10 04:15:08 EDT 2012


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  bbff1c988ecef6bc7155e67969bdb3747daa04a0 (commit)
       via  fc6f051e753963dba0370e5a0a00fa923a705ef9 (commit)
       via  34d3d22a43df94d9213fd27be465cd910f353502 (commit)
       via  f92ca2320a2e6ccf90ab3e05d816bf039850526b (commit)
       via  11406a05d45ce1ed359fdd26ca39d7a6a37fc576 (commit)
       via  e6333decb9739bc96ccec86dfcce7f141d1be6f8 (commit)
       via  f861b5a3276fe4e4497a04981d50ae6ca8dfd232 (commit)
       via  52606a79ce3546534534d74a3a3ea1949cc742c9 (commit)
      from  c77a036711f1accc89e86a90f62361e874043207 (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=bbff1c988ecef6bc7155e67969bdb3747daa04a0
commit bbff1c988ecef6bc7155e67969bdb3747daa04a0
Merge: c77a036 fc6f051
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Fri Aug 10 04:15:03 2012 -0400
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Fri Aug 10 04:15:03 2012 -0400

    Merge topic 'generate_export_header-fixes' into next
    
    fc6f051 Make it possible to use GenerateExportHeader with C-only projects.
    34d3d22 Build C libraries as well as CXX libraries in GenerateExportHeader tests.
    f92ca23 Wrap the use of classes in __cplusplus.
    11406a0 Prepare tests to use non-default languages with project().
    e6333de GenerateExportHeader: Refactor the function for adding compile flags
    f861b5a Add missing test for exported free-function.
    52606a7 Add some newlines to separate the failure message compiler output.


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=fc6f051e753963dba0370e5a0a00fa923a705ef9
commit fc6f051e753963dba0370e5a0a00fa923a705ef9
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Mon Jul 16 10:07:38 2012 +0200
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Fri Aug 10 10:13:11 2012 +0200

    Make it possible to use GenerateExportHeader with C-only projects.

diff --git a/Modules/GenerateExportHeader.cmake b/Modules/GenerateExportHeader.cmake
index a9ca98b..12354b3 100644
--- a/Modules/GenerateExportHeader.cmake
+++ b/Modules/GenerateExportHeader.cmake
@@ -143,11 +143,33 @@
 #  License text for the above reference.)
 
 include(CMakeParseArguments)
-include(CheckCXXCompilerFlag)
+
+if (CMAKE_CXX_COMPILER_LOADED)
+  include(CheckCXXCompilerFlag)
+endif()
+
+if (CMAKE_C_COMPILER_LOADED)
+  include(CheckCCompilerFlag)
+endif()
+
+macro(_check_compiler_flag)
+  if (CMAKE_CXX_COMPILER_LOADED)
+      check_cxx_compiler_flag(${ARGN})
+  else()
+      check_c_compiler_flag(${ARGN})
+  endif()
+endmacro()
+macro(_check_source_compiles)
+  if (CMAKE_CXX_COMPILER_LOADED)
+    check_cxx_source_compiles(${ARGN})
+  else()
+    check_c_source_compiles(${ARGN})
+  endif()
+endmacro()
 
 # TODO: Install this macro separately?
-macro(_check_cxx_compiler_attribute _ATTRIBUTE _RESULT)
-  check_cxx_source_compiles("${_ATTRIBUTE} int somefunc() { return 0; }
+macro(_check_compiler_attribute _ATTRIBUTE _RESULT)
+  _check_source_compiles("${_ATTRIBUTE} int somefunc() { return 0; }
     int main() { return somefunc();}" ${_RESULT}
   )
 endmacro()
@@ -176,8 +198,8 @@ macro(_test_compiler_hidden_visibility)
       AND NOT "${CMAKE_CXX_COMPILER_ID}" MATCHES XL
       AND NOT "${CMAKE_CXX_COMPILER_ID}" MATCHES PGI
       AND NOT "${CMAKE_CXX_COMPILER_ID}" MATCHES Watcom)
-    check_cxx_compiler_flag(-fvisibility=hidden COMPILER_HAS_HIDDEN_VISIBILITY)
-    check_cxx_compiler_flag(-fvisibility-inlines-hidden
+    _check_compiler_flag(-fvisibility=hidden COMPILER_HAS_HIDDEN_VISIBILITY)
+    _check_compiler_flag(-fvisibility-inlines-hidden
       COMPILER_HAS_HIDDEN_INLINE_VISIBILITY)
     option(USE_COMPILER_HIDDEN_VISIBILITY
       "Use HIDDEN visibility support if available." ON)
@@ -194,13 +216,13 @@ macro(_test_compiler_has_deprecated)
     set(COMPILER_HAS_DEPRECATED "" CACHE INTERNAL
       "Compiler support for a deprecated attribute")
   else()
-    _check_cxx_compiler_attribute("__attribute__((__deprecated__))"
+    _check_compiler_attribute("__attribute__((__deprecated__))"
       COMPILER_HAS_DEPRECATED_ATTR)
     if(COMPILER_HAS_DEPRECATED_ATTR)
       set(COMPILER_HAS_DEPRECATED "${COMPILER_HAS_DEPRECATED_ATTR}"
         CACHE INTERNAL "Compiler support for a deprecated attribute")
     else()
-      _check_cxx_compiler_attribute("__declspec(deprecated)"
+      _check_compiler_attribute("__declspec(deprecated)"
         COMPILER_HAS_DEPRECATED)
     endif()
   endif()
@@ -335,6 +357,7 @@ function(add_compiler_export_flags)
     return()
   endif()
 
+  set (EXTRA_FLAGS_C "-fvisibility=hidden")
   set (EXTRA_FLAGS_CXX "-fvisibility=hidden")
 
   if(COMPILER_HAS_HIDDEN_INLINE_VISIBILITY)
@@ -344,19 +367,23 @@ function(add_compiler_export_flags)
   # Either return the extra flags needed in the supplied argument, or to the
   # CMAKE_CXX_FLAGS if no argument is supplied.
   if(ARGV0)
-    if (NOT "${ARGV0}" STREQUAL "CXX")
+    if (NOT ("${ARGV0}" STREQUAL "CXX" OR "${ARGV0}" STREQUAL "C"))
       set(${ARGV0} "${EXTRA_FLAGS_CXX}" PARENT_SCOPE)
     else()
       set(options)
-      set(oneValueArgs CXX)
+      set(oneValueArgs CXX C)
       set(multiValueArgs)
       cmake_parse_arguments(_CEF "${options}" "${oneValueArgs}" "${multiValueArgs}"
           ${ARGN})
       if (_CEF_CXX)
         set(${_CEF_CXX} "${EXTRA_FLAGS_CXX}" PARENT_SCOPE)
       endif()
+      if (_CEF_C)
+        set(${_CEF_C} "${EXTRA_FLAGS_C}" PARENT_SCOPE)
+      endif()
     endif()
   else()
     set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_FLAGS_CXX}" PARENT_SCOPE)
+    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_FLAGS_C}" PARENT_SCOPE)
   endif()
 endfunction()
diff --git a/Tests/Module/GenerateExportHeader/CMakeLists.txt b/Tests/Module/GenerateExportHeader/CMakeLists.txt
index 3bbf3d2..f508ee8 100644
--- a/Tests/Module/GenerateExportHeader/CMakeLists.txt
+++ b/Tests/Module/GenerateExportHeader/CMakeLists.txt
@@ -89,6 +89,9 @@ macro(_do_build Include Library LibrarySource Source Languages)
   file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/test${COUNT}/src.cpp" "#include \"${Include}\"\n"
     "int main() { ${Source}; }\n"
   )
+  file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/test${COUNT}/src.c" "#include \"${Include}\"\n"
+    "int main() { ${Source}; }\n"
+  )
 
   if ("${Library}" STREQUAL "static_variant")
     set(CONDITIONAL_STATIC_DEFINE "add_definitions(-DLIBSHARED_AND_STATIC_STATIC_DEFINE)\n")
@@ -118,8 +121,13 @@ macro(_do_build Include Library LibrarySource Source Languages)
 
     "${CONDITIONAL_STATIC_DEFINE}"
 
-    "add_executable(compiletest src.cpp)\n"
-    "target_link_libraries(compiletest ${Library})\n"
+    "if(CMAKE_CXX_COMPILER_LOADED)\n"
+    "  add_executable(compiletest src.cpp)\n"
+    "  target_link_libraries(compiletest ${Library})\n"
+    "elseif(CMAKE_C_COMPILER_LOADED)\n"
+    "  add_executable(compiletest src.c)\n"
+    "  target_link_libraries(compiletest ${Library}_c)\n"
+    "endif()\n"
   )
 
   try_compile(Result ${CMAKE_CURRENT_BINARY_DIR}/fail${COUNT}
diff --git a/Tests/Module/GenerateExportHeader/lib_shared_and_statictest/CMakeLists.txt b/Tests/Module/GenerateExportHeader/lib_shared_and_statictest/CMakeLists.txt
index 7b9588a..20e8225 100644
--- a/Tests/Module/GenerateExportHeader/lib_shared_and_statictest/CMakeLists.txt
+++ b/Tests/Module/GenerateExportHeader/lib_shared_and_statictest/CMakeLists.txt
@@ -38,4 +38,5 @@ endmacro()
 
 run_tests("")
 run_tests("CXX")
+run_tests("C")
 run_tests("C CXX")
diff --git a/Tests/Module/GenerateExportHeader/libsharedtest/CMakeLists.txt b/Tests/Module/GenerateExportHeader/libsharedtest/CMakeLists.txt
index 19592c4..158a423 100644
--- a/Tests/Module/GenerateExportHeader/libsharedtest/CMakeLists.txt
+++ b/Tests/Module/GenerateExportHeader/libsharedtest/CMakeLists.txt
@@ -52,4 +52,5 @@ endmacro()
 
 run_tests("")
 run_tests("CXX")
+run_tests("C")
 run_tests("C CXX")

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=34d3d22a43df94d9213fd27be465cd910f353502
commit 34d3d22a43df94d9213fd27be465cd910f353502
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Tue Jul 10 19:37:53 2012 +0200
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Fri Aug 10 10:13:11 2012 +0200

    Build C libraries as well as CXX libraries in GenerateExportHeader tests.

diff --git a/Tests/Module/GenerateExportHeader/lib_shared_and_static/CMakeLists.txt b/Tests/Module/GenerateExportHeader/lib_shared_and_static/CMakeLists.txt
index be0387f..66e5f37 100644
--- a/Tests/Module/GenerateExportHeader/lib_shared_and_static/CMakeLists.txt
+++ b/Tests/Module/GenerateExportHeader/lib_shared_and_static/CMakeLists.txt
@@ -9,15 +9,24 @@ add_compiler_export_flags()
 
 set(CMAKE_INCLUDE_CURRENT_DIR ON)
 
-set(lib_SRCS
+set(lib_SRCS_CXX
   libshared_and_static.cpp
 )
 
-add_library(shared_variant SHARED ${lib_SRCS})
-add_library(static_variant ${lib_SRCS})
+configure_file(libshared_and_static.cpp libshared_and_static.c COPYONLY)
+
+set(lib_SRCS_C
+  libshared_and_static.c
+)
+
+add_library(shared_variant SHARED ${lib_SRCS_CXX})
+add_library(static_variant ${lib_SRCS_CXX})
+add_library(shared_variant_c SHARED ${lib_SRCS_C})
+add_library(static_variant_c ${lib_SRCS_C})
 
 generate_export_header(shared_variant BASE_NAME libshared_and_static)
 
 set_target_properties(static_variant PROPERTIES COMPILE_FLAGS -DLIBSHARED_AND_STATIC_STATIC_DEFINE)
+set_target_properties(static_variant_c PROPERTIES COMPILE_FLAGS -DLIBSHARED_AND_STATIC_STATIC_DEFINE)
 
-export(TARGETS shared_variant static_variant FILE Targets.cmake)
+export(TARGETS shared_variant static_variant shared_variant_c static_variant_c FILE Targets.cmake)
diff --git a/Tests/Module/GenerateExportHeader/libshared/CMakeLists.txt b/Tests/Module/GenerateExportHeader/libshared/CMakeLists.txt
index e20adb1..8e34617 100644
--- a/Tests/Module/GenerateExportHeader/libshared/CMakeLists.txt
+++ b/Tests/Module/GenerateExportHeader/libshared/CMakeLists.txt
@@ -11,6 +11,10 @@ set(CMAKE_INCLUDE_CURRENT_DIR ON)
 
 add_library(libshared SHARED libshared.cpp)
 
+configure_file(libshared.cpp libshared.c COPYONLY)
+
+add_library(libshared_c SHARED libshared.c)
+
 generate_export_header(libshared)
 
-export(TARGETS libshared FILE Targets.cmake)
+export(TARGETS libshared libshared_c FILE Targets.cmake)

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=f92ca2320a2e6ccf90ab3e05d816bf039850526b
commit f92ca2320a2e6ccf90ab3e05d816bf039850526b
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Tue Jul 10 19:36:12 2012 +0200
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Fri Aug 10 10:13:11 2012 +0200

    Wrap the use of classes in __cplusplus.

diff --git a/Tests/Module/GenerateExportHeader/lib_shared_and_static/libshared_and_static.cpp b/Tests/Module/GenerateExportHeader/lib_shared_and_static/libshared_and_static.cpp
index 1e07273..909b06a 100644
--- a/Tests/Module/GenerateExportHeader/lib_shared_and_static/libshared_and_static.cpp
+++ b/Tests/Module/GenerateExportHeader/lib_shared_and_static/libshared_and_static.cpp
@@ -1,6 +1,8 @@
 
 #include "libshared_and_static.h"
 
+#ifdef __cplusplus
+
 int LibsharedAndStatic::libshared_and_static() const
 {
   return 0;
@@ -70,6 +72,8 @@ int LibsharedAndStaticExcluded::libshared_and_static_excluded() const {
   return 0;
 }
 
+#endif
+
 int libshared_and_static() {
   return 0;
 }
diff --git a/Tests/Module/GenerateExportHeader/lib_shared_and_static/libshared_and_static.h b/Tests/Module/GenerateExportHeader/lib_shared_and_static/libshared_and_static.h
index 049bfe9..6801e5f 100644
--- a/Tests/Module/GenerateExportHeader/lib_shared_and_static/libshared_and_static.h
+++ b/Tests/Module/GenerateExportHeader/lib_shared_and_static/libshared_and_static.h
@@ -4,6 +4,8 @@
 
 #include "libshared_and_static_export.h"
 
+#ifdef __cplusplus
+
 class LIBSHARED_AND_STATIC_EXPORT LibsharedAndStatic {
 public:
   int libshared_and_static() const;
@@ -43,6 +45,8 @@ public:
   int LIBSHARED_AND_STATIC_NO_EXPORT libshared_and_static_excluded() const;
 };
 
+#endif
+
 LIBSHARED_AND_STATIC_EXPORT int libshared_and_static_exported();
 
 LIBSHARED_AND_STATIC_DEPRECATED_EXPORT int libshared_and_static_deprecated();
diff --git a/Tests/Module/GenerateExportHeader/libshared/libshared.cpp b/Tests/Module/GenerateExportHeader/libshared/libshared.cpp
index d4041b3..bba46a0 100644
--- a/Tests/Module/GenerateExportHeader/libshared/libshared.cpp
+++ b/Tests/Module/GenerateExportHeader/libshared/libshared.cpp
@@ -1,6 +1,8 @@
 
 #include "libshared.h"
 
+#ifdef __cplusplus
+
 int Libshared::libshared() const
 {
   return 0;
@@ -70,6 +72,8 @@ int LibsharedExcluded::libshared_excluded() const {
   return 0;
 }
 
+#endif
+
 int libshared() {
   return 0;
 }
diff --git a/Tests/Module/GenerateExportHeader/libshared/libshared.h b/Tests/Module/GenerateExportHeader/libshared/libshared.h
index 3d9bbff..5e862d0 100644
--- a/Tests/Module/GenerateExportHeader/libshared/libshared.h
+++ b/Tests/Module/GenerateExportHeader/libshared/libshared.h
@@ -4,6 +4,8 @@
 
 #include "libshared_export.h"
 
+#ifdef __cplusplus
+
 class LIBSHARED_EXPORT Libshared {
 public:
   int libshared() const;
@@ -43,6 +45,8 @@ public:
   int LIBSHARED_NO_EXPORT libshared_excluded() const;
 };
 
+#endif
+
 LIBSHARED_EXPORT int libshared_exported();
 
 LIBSHARED_DEPRECATED_EXPORT int libshared_deprecated();

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=11406a05d45ce1ed359fdd26ca39d7a6a37fc576
commit 11406a05d45ce1ed359fdd26ca39d7a6a37fc576
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Mon Jul 16 09:50:51 2012 +0200
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Fri Aug 10 10:13:11 2012 +0200

    Prepare tests to use non-default languages with project().

diff --git a/Tests/Module/GenerateExportHeader/CMakeLists.txt b/Tests/Module/GenerateExportHeader/CMakeLists.txt
index 454f37a..3bbf3d2 100644
--- a/Tests/Module/GenerateExportHeader/CMakeLists.txt
+++ b/Tests/Module/GenerateExportHeader/CMakeLists.txt
@@ -82,7 +82,7 @@ set(TEST_TOP_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR})
 # We seem to get race conditions is writing this stuff to the same file at least on MinGW
 # So to write to separate source and build directories, we use a count to differentiate.
 set (COUNT 0)
-macro(_do_build Include Library LibrarySource Source)
+macro(_do_build Include Library LibrarySource Source Languages)
 
   math(EXPR COUNT "${COUNT} + 1" )
 
@@ -97,7 +97,7 @@ macro(_do_build Include Library LibrarySource Source)
   file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/test${COUNT}/CMakeLists.txt"
     "cmake_minimum_required(VERSION 2.8)\n"
 
-    "project(compiletest)\n"
+    "project(compiletest ${Languages})\n"
 
     "set(CMAKE_INCLUDE_CURRENT_DIR ON)\n"
 
@@ -129,13 +129,13 @@ macro(_do_build Include Library LibrarySource Source)
   )
 endmacro()
 
-macro(build_fail Include Library LibrarySource Source Message)
-  _do_build(${Include} ${Library} ${LibrarySource} "${Source}")
+macro(build_fail Include Library LibrarySource Source Message Languages)
+  _do_build(${Include} ${Library} ${LibrarySource} "${Source}" "${Languages}")
   test_fail(Result ${Message})
 endmacro()
 
-macro(build_pass Include Library LibrarySource Source Message)
-  _do_build(${Include} ${Library} ${LibrarySource} "${Source}")
+macro(build_pass Include Library LibrarySource Source Message Languages)
+  _do_build(${Include} ${Library} ${LibrarySource} "${Source}" "${Languages}")
   test_pass(Result ${Message})
 endmacro()
 
diff --git a/Tests/Module/GenerateExportHeader/lib_shared_and_statictest/CMakeLists.txt b/Tests/Module/GenerateExportHeader/lib_shared_and_statictest/CMakeLists.txt
index 207534d..7b9588a 100644
--- a/Tests/Module/GenerateExportHeader/lib_shared_and_statictest/CMakeLists.txt
+++ b/Tests/Module/GenerateExportHeader/lib_shared_and_statictest/CMakeLists.txt
@@ -1,33 +1,41 @@
 
-macro(shared_variant_build_pass Source Message)
-  build_pass("libshared_and_static.h" "shared_variant" "lib_shared_and_static" "${Source}" ${Message})
+macro(shared_variant_build_pass Source Message Languages)
+  build_pass("libshared_and_static.h" "shared_variant" "lib_shared_and_static" "${Source}" ${Message} "${Languages}")
 endmacro()
 
 macro(shared_variant_build_fail Source Message)
-  build_fail("libshared_and_static.h" "shared_variant" "lib_shared_and_static" "${Source}" ${Message})
+  build_fail("libshared_and_static.h" "shared_variant" "lib_shared_and_static" "${Source}" ${Message} "${Languages}")
 endmacro()
 
 macro(static_variant_build_pass Source Message)
-  build_pass("libshared_and_static.h" "static_variant" "lib_shared_and_static" "${Source}" ${Message})
+  build_pass("libshared_and_static.h" "static_variant" "lib_shared_and_static" "${Source}" ${Message} "${Languages}")
 endmacro()
 
 macro(static_variant_build_fail Source Message)
-  build_fail("libshared_and_static.h" "static_variant" "lib_shared_and_static" "${Source}" ${Message})
+  build_fail("libshared_and_static.h" "static_variant" "lib_shared_and_static" "${Source}" ${Message} "${Languages}")
 endmacro()
 
-static_variant_build_pass("return libshared_and_static_exported();" "Failed to build static variant")
-shared_variant_build_pass("return libshared_and_static_exported();" "Failed to build shared variant")
-# if (COMPILER_HAS_DEPRECATED)
-#   shared_variant_build_fail("return libshared_and_static_deprecated();" "Built shared deprecated variant")
-#   static_variant_build_fail("return libshared_and_static_deprecated();" "Built static deprecated variant")
-# else()
-#   shared_variant_build_pass("return libshared_and_static_deprecated();" "Built shared deprecated variant")
-#   static_variant_build_pass("return libshared_and_static_deprecated();" "Built static deprecated variant")
-# endif()
-static_variant_build_pass("return libshared_and_static_not_exported();" "Failed to build static not exported variant")
-
-if (WIN32 OR COMPILER_HAS_HIDDEN_VISIBILITY)
-  shared_variant_build_fail("return libshared_and_static_not_exported();" "Built shared not exported variant")
-else()
-  shared_variant_build_pass("return libshared_and_static_not_exported();" "Built shared not exported variant")
-endif()
+
+macro(run_tests Languages)
+
+  static_variant_build_pass("return libshared_and_static_exported();" "Failed to build static variant\n" "${Languages}")
+  shared_variant_build_pass("return libshared_and_static_exported();" "Failed to build shared variant\n" "${Languages}")
+  # if (COMPILER_HAS_DEPRECATED)
+  #   shared_variant_build_fail("return libshared_and_static_deprecated();" "Built shared deprecated variant")
+  #   static_variant_build_fail("return libshared_and_static_deprecated();" "Built static deprecated variant")
+  # else()
+  #   shared_variant_build_pass("return libshared_and_static_deprecated();" "Built shared deprecated variant")
+  #   static_variant_build_pass("return libshared_and_static_deprecated();" "Built static deprecated variant")
+  # endif()
+  static_variant_build_pass("return libshared_and_static_not_exported();" "Failed to build static not exported variant\n" "${Languages}")
+
+  if (WIN32 OR COMPILER_HAS_HIDDEN_VISIBILITY)
+    shared_variant_build_fail("return libshared_and_static_not_exported();" "Built shared not exported variant\n" "${Languages}")
+  else()
+    shared_variant_build_pass("return libshared_and_static_not_exported();" "Built shared not exported variant" "${Languages}")
+  endif()
+endmacro()
+
+run_tests("")
+run_tests("CXX")
+run_tests("C CXX")
diff --git a/Tests/Module/GenerateExportHeader/libsharedtest/CMakeLists.txt b/Tests/Module/GenerateExportHeader/libsharedtest/CMakeLists.txt
index 2a97d8f..19592c4 100644
--- a/Tests/Module/GenerateExportHeader/libsharedtest/CMakeLists.txt
+++ b/Tests/Module/GenerateExportHeader/libsharedtest/CMakeLists.txt
@@ -1,14 +1,13 @@
 
 macro(shared_build_pass Source Message)
-    build_pass("libshared.h" "libshared" "libshared" "${Source}" ${Message})
+    build_pass("libshared.h" "libshared" "libshared" "${Source}" ${Message} "${ARGN}")
 endmacro()
 
 macro(shared_build_fail Source Message)
-    build_fail("libshared.h" "libshared" "libshared" "${Source}" ${Message})
+    build_fail("libshared.h" "libshared" "libshared" "${Source}" ${Message} "${ARGN}")
 endmacro()
 
 shared_build_pass("Libshared l; return l.libshared_exported();" "Failed to build exported")
-shared_build_pass("return libshared_exported();" "Failed to build exported function.")
 
 # if (COMPILER_HAS_DEPRECATED)
 #   shared_build_fail("Libshared l; return l.libshared_deprecated();" "Built use of deprecated class method. This should not be possible.")
@@ -29,9 +28,6 @@ if (WIN32 OR COMPILER_HAS_HIDDEN_VISIBILITY)
   shared_build_fail("LibsharedExcluded l; return l.libshared();" "Built use of excluded class method. This should not be possible.")
   shared_build_fail("LibsharedExcluded l; return l.libshared_not_exported();" "Built use of excluded class method. This should not be possible.")
   shared_build_fail("LibsharedExcluded l; return l.libshared_excluded();" "Built use of excluded class method. This should not be possible.")
-
-  shared_build_fail("return libshared_excluded();" "Built use of excluded function. This should not be possible.")
-  shared_build_fail("return libshared_not_exported();" "Built use of not-exported function. This should not be possible.")
 else()
   shared_build_pass("LibsharedNotExported l; return l.libshared();" "Built use of not-exported class method.")
   shared_build_pass("LibsharedNotExported l; return l.libshared_not_exported();" "Built use of not-exported class method.")
@@ -39,7 +35,21 @@ else()
   shared_build_pass("LibsharedExcluded l; return l.libshared();" "Built use of excluded class method.")
   shared_build_pass("LibsharedExcluded l; return l.libshared_not_exported();" "Built use of excluded class method.")
   shared_build_pass("LibsharedExcluded l; return l.libshared_excluded();" "Built use of excluded class method.")
-
-  shared_build_pass("return libshared_excluded();" "Built use of excluded function.")
-  shared_build_pass("return libshared_not_exported();" "Built use of not-exported function.")
 endif()
+
+
+macro(run_tests Languages)
+  shared_build_pass("return libshared_exported();" "Failed to build exported function." "${Languages}")
+
+  if (WIN32 OR COMPILER_HAS_HIDDEN_VISIBILITY)
+    shared_build_fail("return libshared_excluded();" "Built use of excluded function. This should not be possible." "${Languages}")
+    shared_build_fail("return libshared_not_exported();" "Built use of not-exported function. This should not be possible." "${Languages}")
+  else()
+    shared_build_pass("return libshared_excluded();" "Built use of excluded function." "${Languages}")
+    shared_build_pass("return libshared_not_exported();" "Built use of not-exported function." "${Languages}")
+  endif()
+endmacro()
+
+run_tests("")
+run_tests("CXX")
+run_tests("C CXX")
diff --git a/Tests/Module/GenerateExportHeader/libstatictest/CMakeLists.txt b/Tests/Module/GenerateExportHeader/libstatictest/CMakeLists.txt
index eb6bb87..15771f3 100644
--- a/Tests/Module/GenerateExportHeader/libstatictest/CMakeLists.txt
+++ b/Tests/Module/GenerateExportHeader/libstatictest/CMakeLists.txt
@@ -1,10 +1,10 @@
 
 macro(static_build_pass Source Message)
-  build_pass("libstatic.h" "libstatic" "libstatic" "${Source}" ${Message})
+  build_pass("libstatic.h" "libstatic" "libstatic" "${Source}" ${Message} "")
 endmacro()
 
 macro(static_build_fail Source Message)
-  build_fail("libstatic.h" "libstatic" "libstatic" "${Source}" ${Message})
+  build_fail("libstatic.h" "libstatic" "libstatic" "${Source}" ${Message} "")
 endmacro()
 
 static_build_pass("Libstatic l; return l.libstatic_exported();" "Failed to build exported.")

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=e6333decb9739bc96ccec86dfcce7f141d1be6f8
commit e6333decb9739bc96ccec86dfcce7f141d1be6f8
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Mon Jul 16 09:46:08 2012 +0200
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Fri Aug 10 10:13:11 2012 +0200

    GenerateExportHeader: Refactor the function for adding compile flags
    
    This function will be repurposed to add both C and CXX flags.

diff --git a/Modules/GenerateExportHeader.cmake b/Modules/GenerateExportHeader.cmake
index ce23d5d..a9ca98b 100644
--- a/Modules/GenerateExportHeader.cmake
+++ b/Modules/GenerateExportHeader.cmake
@@ -335,17 +335,28 @@ function(add_compiler_export_flags)
     return()
   endif()
 
-  set (EXTRA_FLAGS "-fvisibility=hidden")
+  set (EXTRA_FLAGS_CXX "-fvisibility=hidden")
 
   if(COMPILER_HAS_HIDDEN_INLINE_VISIBILITY)
-    set (EXTRA_FLAGS "${EXTRA_FLAGS} -fvisibility-inlines-hidden")
+    set (EXTRA_FLAGS_CXX "${EXTRA_FLAGS_CXX} -fvisibility-inlines-hidden")
   endif()
 
   # Either return the extra flags needed in the supplied argument, or to the
   # CMAKE_CXX_FLAGS if no argument is supplied.
   if(ARGV0)
-    set(${ARGV0} "${EXTRA_FLAGS}" PARENT_SCOPE)
+    if (NOT "${ARGV0}" STREQUAL "CXX")
+      set(${ARGV0} "${EXTRA_FLAGS_CXX}" PARENT_SCOPE)
+    else()
+      set(options)
+      set(oneValueArgs CXX)
+      set(multiValueArgs)
+      cmake_parse_arguments(_CEF "${options}" "${oneValueArgs}" "${multiValueArgs}"
+          ${ARGN})
+      if (_CEF_CXX)
+        set(${_CEF_CXX} "${EXTRA_FLAGS_CXX}" PARENT_SCOPE)
+      endif()
+    endif()
   else()
-    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_FLAGS}" PARENT_SCOPE)
+    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_FLAGS_CXX}" PARENT_SCOPE)
   endif()
 endfunction()

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=f861b5a3276fe4e4497a04981d50ae6ca8dfd232
commit f861b5a3276fe4e4497a04981d50ae6ca8dfd232
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Mon Jul 16 10:05:22 2012 +0200
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Fri Aug 10 10:13:11 2012 +0200

    Add missing test for exported free-function.

diff --git a/Tests/Module/GenerateExportHeader/libsharedtest/CMakeLists.txt b/Tests/Module/GenerateExportHeader/libsharedtest/CMakeLists.txt
index a5804fc..2a97d8f 100644
--- a/Tests/Module/GenerateExportHeader/libsharedtest/CMakeLists.txt
+++ b/Tests/Module/GenerateExportHeader/libsharedtest/CMakeLists.txt
@@ -8,6 +8,7 @@ macro(shared_build_fail Source Message)
 endmacro()
 
 shared_build_pass("Libshared l; return l.libshared_exported();" "Failed to build exported")
+shared_build_pass("return libshared_exported();" "Failed to build exported function.")
 
 # if (COMPILER_HAS_DEPRECATED)
 #   shared_build_fail("Libshared l; return l.libshared_deprecated();" "Built use of deprecated class method. This should not be possible.")

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=52606a79ce3546534534d74a3a3ea1949cc742c9
commit 52606a79ce3546534534d74a3a3ea1949cc742c9
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Wed Jul 11 17:06:37 2012 +0200
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Fri Aug 10 10:13:10 2012 +0200

    Add some newlines to separate the failure message compiler output.

diff --git a/Tests/Module/GenerateExportHeader/CMakeLists.txt b/Tests/Module/GenerateExportHeader/CMakeLists.txt
index 4a5b1cb..454f37a 100644
--- a/Tests/Module/GenerateExportHeader/CMakeLists.txt
+++ b/Tests/Module/GenerateExportHeader/CMakeLists.txt
@@ -23,13 +23,13 @@ set( CMAKE_INCLUDE_CURRENT_DIR ON )
 
 macro(TEST_FAIL value msg)
   if (${value})
-    message (SEND_ERROR "Test fail:" ${msg} ${Out} )
+    message (SEND_ERROR "Test fail:" "${msg}\n" ${Out} )
   endif ()
 endmacro()
 
 macro(TEST_PASS value msg)
   if (NOT ${value})
-    message (SEND_ERROR "Test fail:" ${msg} ${Out} )
+    message (SEND_ERROR "Test fail:" "${msg}\n" ${Out} )
   endif ()
 endmacro()
 

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

Summary of changes:
 Modules/GenerateExportHeader.cmake                 |   60 ++++++++++++++++----
 Tests/Module/GenerateExportHeader/CMakeLists.txt   |   28 ++++++---
 .../lib_shared_and_static/CMakeLists.txt           |   17 ++++-
 .../lib_shared_and_static/libshared_and_static.cpp |    4 +
 .../lib_shared_and_static/libshared_and_static.h   |    4 +
 .../lib_shared_and_statictest/CMakeLists.txt       |   51 ++++++++++-------
 .../GenerateExportHeader/libshared/CMakeLists.txt  |    6 ++-
 .../GenerateExportHeader/libshared/libshared.cpp   |    4 +
 .../GenerateExportHeader/libshared/libshared.h     |    4 +
 .../libsharedtest/CMakeLists.txt                   |   28 +++++++---
 .../libstatictest/CMakeLists.txt                   |    4 +-
 11 files changed, 153 insertions(+), 57 deletions(-)


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list