summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--qpid/cpp/CMakeModules/CheckSizeTNativeType.cmake59
-rwxr-xr-xqpid/cpp/CMakeModules/CheckSizetDistinct.cmake56
2 files changed, 56 insertions, 59 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..85bc5fd985
--- /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)