[Cmake-commits] CMake branch, next, updated. v2.8.11-2059-gae6d79b
Stephen Kelly
steveire at gmail.com
Fri May 17 07:06:29 EDT 2013
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 ae6d79b1c5335e5e79856734edbdb6835b9cef21 (commit)
via 40f8654d9463ff3141af203a5af082c4670ea4ed (commit)
via cf54dc9d4bc890ba2833d4ac45763a35c9db3d1e (commit)
from 1a3564b96031019162c99e8c0cf1a10a9dc7ac98 (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=ae6d79b1c5335e5e79856734edbdb6835b9cef21
commit ae6d79b1c5335e5e79856734edbdb6835b9cef21
Merge: 1a3564b 40f8654
Author: Stephen Kelly <steveire at gmail.com>
AuthorDate: Fri May 17 07:06:16 2013 -0400
Commit: CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Fri May 17 07:06:16 2013 -0400
Merge topic 'generate_export_header-fixes' into next
40f8654 Make it possible to use GenerateExportHeader with C-only projects.
cf54dc9 Build C libraries as well as CXX libraries in GenerateExportHeader tests.
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=40f8654d9463ff3141af203a5af082c4670ea4ed
commit 40f8654d9463ff3141af203a5af082c4670ea4ed
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 May 17 13:03:22 2013 +0200
Make it possible to use GenerateExportHeader with C-only projects.
diff --git a/Modules/GenerateExportHeader.cmake b/Modules/GenerateExportHeader.cmake
index ef7a05b..0060c41 100644
--- a/Modules/GenerateExportHeader.cmake
+++ b/Modules/GenerateExportHeader.cmake
@@ -143,11 +143,37 @@
# 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})
+ elseif(CMAKE_C_COMPILER_LOADED)
+ check_c_compiler_flag(${ARGN})
+ else()
+ message(FATAL_ERROR "This module requires at least a C or C++ compiler.")
+ endif()
+endmacro()
+macro(_check_source_compiles)
+ if (CMAKE_CXX_COMPILER_LOADED)
+ check_cxx_source_compiles(${ARGN})
+ elseif(CMAKE_C_COMPILER_LOADED)
+ check_c_source_compiles(${ARGN})
+ else()
+ message(FATAL_ERROR "This module requires at least a C or C++ compiler.")
+ 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()
@@ -172,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)
@@ -190,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()
@@ -331,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)
@@ -340,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/libshared/CMakeLists.txt b/Tests/Module/GenerateExportHeader/libshared/CMakeLists.txt
index d2438c7..773d978 100644
--- a/Tests/Module/GenerateExportHeader/libshared/CMakeLists.txt
+++ b/Tests/Module/GenerateExportHeader/libshared/CMakeLists.txt
@@ -5,16 +5,18 @@ project(libshared)
include(GenerateExportHeader)
-add_compiler_export_flags()
+add_compiler_export_flags(CXX CXX_EXPORT_FLAGS C C_EXPORT_FLAGS)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
add_library(libshared SHARED libshared.cpp)
+set_property(TARGET libshared PROPERTY COMPILE_FLAGS ${CXX_EXPORT_FLAGS})
configure_file(libshared.cpp libshared.c COPYONLY)
add_library(libshared_c SHARED libshared.c)
set_property(TARGET libshared_c PROPERTY DEFINE_SYMBOL libshared_EXPORTS)
+set_property(TARGET libshared_c PROPERTY COMPILE_FLAGS ${C_EXPORT_FLAGS})
generate_export_header(libshared)
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=cf54dc9d4bc890ba2833d4ac45763a35c9db3d1e
commit cf54dc9d4bc890ba2833d4ac45763a35c9db3d1e
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 May 17 13:03:19 2013 +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..21e1967 100644
--- a/Tests/Module/GenerateExportHeader/lib_shared_and_static/CMakeLists.txt
+++ b/Tests/Module/GenerateExportHeader/lib_shared_and_static/CMakeLists.txt
@@ -9,15 +9,25 @@ 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})
+set_property(TARGET shared_variant_c PROPERTY DEFINE_SYMBOL shared_variant_EXPORTS)
+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..d2438c7 100644
--- a/Tests/Module/GenerateExportHeader/libshared/CMakeLists.txt
+++ b/Tests/Module/GenerateExportHeader/libshared/CMakeLists.txt
@@ -11,6 +11,11 @@ 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)
+set_property(TARGET libshared_c PROPERTY DEFINE_SYMBOL libshared_EXPORTS)
+
generate_export_header(libshared)
-export(TARGETS libshared FILE Targets.cmake)
+export(TARGETS libshared libshared_c FILE Targets.cmake)
-----------------------------------------------------------------------
Summary of changes:
Modules/GenerateExportHeader.cmake | 49 ++++++++++++++++----
Tests/Module/GenerateExportHeader/CMakeLists.txt | 12 ++++-
.../lib_shared_and_static/CMakeLists.txt | 18 ++++++--
.../lib_shared_and_statictest/CMakeLists.txt | 1 +
.../GenerateExportHeader/libshared/CMakeLists.txt | 11 ++++-
.../libsharedtest/CMakeLists.txt | 1 +
6 files changed, 75 insertions(+), 17 deletions(-)
hooks/post-receive
--
CMake
More information about the Cmake-commits
mailing list