diff options
author | Stephen D. Huston <shuston@apache.org> | 2015-02-22 00:27:37 +0000 |
---|---|---|
committer | Stephen D. Huston <shuston@apache.org> | 2015-02-22 00:27:37 +0000 |
commit | 3aaecb7a5b0e7886c235d3da0c2599ec41c583b4 (patch) | |
tree | 3da643ab57c2ccb06c8e489a4b51c111e83fd262 /qpid | |
parent | 5cf015331582ba3ff064ea962805e285b5ad61e8 (diff) | |
download | qpid-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.cmake | 59 | ||||
-rwxr-xr-x | qpid/cpp/CMakeModules/CheckSizetDistinct.cmake | 56 | ||||
-rw-r--r-- | qpid/cpp/src/CMakeLists.txt | 4 | ||||
-rw-r--r-- | qpid/cpp/src/config.h.cmake | 2 | ||||
-rw-r--r-- | qpid/cpp/src/qpid/Options.cpp | 2 |
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); |