summaryrefslogtreecommitdiff
path: root/qpid
diff options
context:
space:
mode:
authorStephen D. Huston <shuston@apache.org>2015-02-22 00:27:37 +0000
committerStephen D. Huston <shuston@apache.org>2015-02-22 00:27:37 +0000
commit3aaecb7a5b0e7886c235d3da0c2599ec41c583b4 (patch)
tree3da643ab57c2ccb06c8e489a4b51c111e83fd262 /qpid
parent5cf015331582ba3ff064ea962805e285b5ad61e8 (diff)
downloadqpid-python-3aaecb7a5b0e7886c235d3da0c2599ec41c583b4.tar.gz
Replace non-Apache licensed CheckSizeTNativeType.cmake with ASF-licensed and more correct for our needs, CheckSizetDistinct.cmake. Resolves QPID-6312.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1661450 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid')
-rw-r--r--qpid/cpp/CMakeModules/CheckSizeTNativeType.cmake59
-rwxr-xr-xqpid/cpp/CMakeModules/CheckSizetDistinct.cmake56
-rw-r--r--qpid/cpp/src/CMakeLists.txt4
-rw-r--r--qpid/cpp/src/config.h.cmake2
-rw-r--r--qpid/cpp/src/qpid/Options.cpp2
5 files changed, 60 insertions, 63 deletions
diff --git a/qpid/cpp/CMakeModules/CheckSizeTNativeType.cmake b/qpid/cpp/CMakeModules/CheckSizeTNativeType.cmake
deleted file mode 100644
index fb515cd149..0000000000
--- a/qpid/cpp/CMakeModules/CheckSizeTNativeType.cmake
+++ /dev/null
@@ -1,59 +0,0 @@
-#
-# $Id $
-#
-# Author(s): Anton Deguet
-# Created on: 2011
-#
-# (C) Copyright 2011 Johns Hopkins University (JHU), All Rights
-# Reserved.
-#
-# --- begin cisst license - do not edit ---
-#
-# This software is provided "as is" under an open source license, with
-# no warranty. The complete license can be found in license.txt and
-# http://www.cisst.org/cisst/license.txt.
-#
-# --- end cisst license ---
-
-function (check_size_t_native_type VARIABLE)
- # make sure we don't test over and over
- if ("${VARIABLE}" MATCHES "^${VARIABLE}$")
- message (STATUS "Checking to see if size_t is a native type")
- set (SOURCE
- "#include <vector>
- char method(unsigned int p) {
- return 'u';
- }
- char method(unsigned long long int p) {
- return 'l';
- }
- char method(size_t p) {
- return 's';
- }
- int main(void) {}")
-
- file (WRITE
- "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/test_size_t.cpp"
- "${SOURCE}\n")
-
- try_compile (${VARIABLE}
- ${CMAKE_BINARY_DIR}
- "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/test_size_t.cpp"
- OUTPUT_VARIABLE OUTPUT)
-
- # report using message and log files
- if (${VARIABLE})
- message (STATUS "Checking to see if size_t is a native type - yes")
- file (APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
- "Determining if size_t is a native type passed with "
- "the following output:\n${OUTPUT}\n\n")
- else (${VARIABLE})
- message (STATUS "Checking to see if size_t is a native type - no")
- file (APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
- "Determining if size_t is a native type passed with "
- "the following output:\n${OUTPUT}\n\n")
- endif (${VARIABLE})
-
- endif ("${VARIABLE}" MATCHES "^${VARIABLE}$")
-
-endfunction (check_size_t_native_type VARIABLE)
diff --git a/qpid/cpp/CMakeModules/CheckSizetDistinct.cmake b/qpid/cpp/CMakeModules/CheckSizetDistinct.cmake
new file mode 100755
index 0000000000..2ae4a89de9
--- /dev/null
+++ b/qpid/cpp/CMakeModules/CheckSizetDistinct.cmake
@@ -0,0 +1,56 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+# This module checks to see if size_t is a distinct type from the other
+# integer types already set up in IntegerTypes.h.
+
+INCLUDE (CheckCXXSourceCompiles)
+
+FUNCTION (check_size_t_distinct VARIABLE)
+ # No need to check if we already did. If you want to re-run, clear it
+ # from the cache.
+ if ("${VARIABLE}" MATCHES "^${VARIABLE}$")
+ message (STATUS "Checking to see if size_t is a distinct type")
+ set (CMAKE_REQUIRED_QUIET ON)
+ set (CMAKE_REQUIRED_INCLUDES "${CMAKE_SOURCE_DIR}/include")
+ CHECK_CXX_SOURCE_COMPILES (
+"
+#include <iostream>
+#include \"qpid/sys/IntegerTypes.h\"
+// Define functions that will fail to compile if size_t is the same as
+// one of the int types defined in IntegerTypes.h
+int foo(int16_t) { return 1; }
+int foo(int32_t) { return 2; }
+int foo(int64_t) { return 3; }
+int foo(uint16_t) { return 4; }
+int foo(uint32_t) { return 5; }
+int foo(uint64_t) { return 6; }
+int foo(size_t) { return 7; }
+int main (int, char *[]) {
+ return 0;
+}
+"
+ ${VARIABLE})
+ if (${VARIABLE})
+ message (STATUS "Checking to see if size_t is a distinct type - yes")
+ else (${VARIABLE})
+ message (STATUS "Checking to see if size_t is a distinct type - no")
+ endif (${VARIABLE})
+ endif ("${VARIABLE}" MATCHES "^${VARIABLE}$")
+ENDFUNCTION (check_size_t_distinct VARIABLE)
diff --git a/qpid/cpp/src/CMakeLists.txt b/qpid/cpp/src/CMakeLists.txt
index 8263534614..3de2cc9b06 100644
--- a/qpid/cpp/src/CMakeLists.txt
+++ b/qpid/cpp/src/CMakeLists.txt
@@ -42,7 +42,7 @@ include(CheckIncludeFiles)
include(CheckIncludeFileCXX)
include(CheckLibraryExists)
include(CheckSymbolExists)
-include(CheckSizeTNativeType)
+include(CheckSizetDistinct)
find_package(PkgConfig)
find_package(Ruby)
@@ -351,7 +351,7 @@ if (NOT CMAKE_SYSTEM_NAME STREQUAL Windows)
mark_as_advanced(QPID_POLLER)
endif (NOT CMAKE_SYSTEM_NAME STREQUAL Windows)
-check_size_t_native_type (QPID_SIZE_T_NATIVE)
+check_size_t_distinct (QPID_SIZE_T_DISTINCT)
option(BUILD_SASL "Build with Cyrus SASL support" ${SASL_FOUND})
if (BUILD_SASL)
diff --git a/qpid/cpp/src/config.h.cmake b/qpid/cpp/src/config.h.cmake
index 478b369eb6..ffde86ffa5 100644
--- a/qpid/cpp/src/config.h.cmake
+++ b/qpid/cpp/src/config.h.cmake
@@ -56,7 +56,7 @@
#cmakedefine HAVE_SYS_SDT_H ${HAVE_SYS_SDT_H}
#cmakedefine HAVE_LOG_AUTHPRIV
#cmakedefine HAVE_LOG_FTP
-#cmakedefine QPID_SIZE_T_NATIVE
+#cmakedefine QPID_SIZE_T_DISTINCT
#cmakedefine HAVE_PROTON_TRACER
#cmakedefine USE_PROTON_TRANSPORT_CONDITION
#cmakedefine HAVE_PROTON_EVENTS
diff --git a/qpid/cpp/src/qpid/Options.cpp b/qpid/cpp/src/qpid/Options.cpp
index 5ca91e6bd4..0021afc574 100644
--- a/qpid/cpp/src/qpid/Options.cpp
+++ b/qpid/cpp/src/qpid/Options.cpp
@@ -146,7 +146,7 @@ template QPID_COMMON_EXTERN po::value_semantic* create_value(int64_t& val, const
template QPID_COMMON_EXTERN po::value_semantic* create_value(uint16_t& val, const std::string& arg);
template QPID_COMMON_EXTERN po::value_semantic* create_value(uint32_t& val, const std::string& arg);
template QPID_COMMON_EXTERN po::value_semantic* create_value(uint64_t& val, const std::string& arg);
-#ifdef QPID_SIZE_T_NATIVE
+#ifdef QPID_SIZE_T_DISTINCT
template QPID_COMMON_EXTERN po::value_semantic* create_value(size_t& val, const std::string& arg);
#endif
template QPID_COMMON_EXTERN po::value_semantic* create_value(double& val, const std::string& arg);