blob: 29b8bbea85913c16b29a9c4bdc485cadfc019bb1 [file] [log] [blame]
Pascal Bachd5f87e12014-12-12 15:59:17 +01001#
2# Licensed to the Apache Software Foundation (ASF) under one
3# or more contributor license agreements. See the NOTICE file
4# distributed with this work for additional information
5# regarding copyright ownership. The ASF licenses this file
6# to you under the Apache License, Version 2.0 (the
7# "License"); you may not use this file except in compliance
8# with the License. You may obtain a copy of the License at
9#
10# http://www.apache.org/licenses/LICENSE-2.0
11#
12# Unless required by applicable law or agreed to in writing,
13# software distributed under the License is distributed on an
14# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15# KIND, either express or implied. See the License for the
16# specific language governing permissions and limitations
17# under the License.
18#
19
James E. King, III7edc8fa2017-01-20 10:11:41 -050020include(CheckFunctionExists)
Pascal Bachd5f87e12014-12-12 15:59:17 +010021include(CheckIncludeFile)
22include(CheckIncludeFiles)
James E. King, III7edc8fa2017-01-20 10:11:41 -050023include(CheckSymbolExists)
Mario Emmenlauer5a64c712020-09-09 13:38:51 +020024include(CheckStructHasMember)
25include(CheckCSourceCompiles)
26include(CheckCXXSourceCompiles)
Pascal Bachd5f87e12014-12-12 15:59:17 +010027
James E. King, III7edc8fa2017-01-20 10:11:41 -050028if (Inttypes_FOUND)
29 # This allows the inttypes.h and stdint.h checks to succeed on platforms that
30 # do not natively provide there.
31 set (CMAKE_REQUIRED_INCLUDES ${INTTYPES_INCLUDE_DIRS})
32endif ()
Pascal Bachd5f87e12014-12-12 15:59:17 +010033
34check_include_file(arpa/inet.h HAVE_ARPA_INET_H)
35check_include_file(fcntl.h HAVE_FCNTL_H)
Jim King9de9b1f2015-04-30 16:03:34 -040036check_include_file(getopt.h HAVE_GETOPT_H)
Pascal Bachd5f87e12014-12-12 15:59:17 +010037check_include_file(inttypes.h HAVE_INTTYPES_H)
38check_include_file(netdb.h HAVE_NETDB_H)
39check_include_file(netinet/in.h HAVE_NETINET_IN_H)
James E. King III9bea32f2018-03-16 16:07:42 -040040check_include_file(signal.h HAVE_SIGNAL_H)
Pascal Bachd5f87e12014-12-12 15:59:17 +010041check_include_file(stdint.h HAVE_STDINT_H)
42check_include_file(unistd.h HAVE_UNISTD_H)
43check_include_file(pthread.h HAVE_PTHREAD_H)
Bugra Gedik8bcb7ac2018-01-21 09:43:49 -080044check_include_file(sys/ioctl.h HAVE_SYS_IOCTL_H)
Pascal Bachd5f87e12014-12-12 15:59:17 +010045check_include_file(sys/param.h HAVE_SYS_PARAM_H)
46check_include_file(sys/resource.h HAVE_SYS_RESOURCE_H)
47check_include_file(sys/socket.h HAVE_SYS_SOCKET_H)
48check_include_file(sys/stat.h HAVE_SYS_STAT_H)
Bugra Gedik8bcb7ac2018-01-21 09:43:49 -080049check_include_file(sys/time.h HAVE_SYS_TIME_H)
Pascal Bachd5f87e12014-12-12 15:59:17 +010050check_include_file(sys/un.h HAVE_SYS_UN_H)
st0ke961fa702018-10-12 18:37:40 +070051check_include_file(poll.h HAVE_POLL_H)
Pascal Bachd5f87e12014-12-12 15:59:17 +010052check_include_file(sys/poll.h HAVE_SYS_POLL_H)
53check_include_file(sys/select.h HAVE_SYS_SELECT_H)
54check_include_file(sched.h HAVE_SCHED_H)
James E. King, III00d42522017-04-04 09:32:45 -040055check_include_file(string.h HAVE_STRING_H)
Pascal Bachd5f87e12014-12-12 15:59:17 +010056check_include_file(strings.h HAVE_STRINGS_H)
57
Mario Emmenlauer5a64c712020-09-09 13:38:51 +020058# Check for afunix.h on Windows (since Windows 10 Insider Build 17063):
59check_cxx_source_compiles(
60 "
61 #define WIN32_LEAN_AND_MEAN
62 #include <winsock2.h>
63 #include <windows.h>
64 #include <afunix.h>
65 int main(){(void)sizeof(((struct sockaddr_un *)0)->sun_path); return 0;}
66 "
67 HAVE_AF_UNIX_H)
68
69
Pascal Bachd5f87e12014-12-12 15:59:17 +010070check_function_exists(gethostbyname HAVE_GETHOSTBYNAME)
71check_function_exists(gethostbyname_r HAVE_GETHOSTBYNAME_R)
72check_function_exists(strerror_r HAVE_STRERROR_R)
73check_function_exists(sched_get_priority_max HAVE_SCHED_GET_PRIORITY_MAX)
74check_function_exists(sched_get_priority_min HAVE_SCHED_GET_PRIORITY_MIN)
75
Pascal Bachd5f87e12014-12-12 15:59:17 +010076
77check_cxx_source_compiles(
78 "
79 #include <string.h>
Anton Filippov68f21942020-03-31 18:51:16 +070080 int main(){char b;char *a = strerror_r(0, &b, 0); static_cast<void>(a); return(0);}
Pascal Bachd5f87e12014-12-12 15:59:17 +010081 "
82 STRERROR_R_CHAR_P)
83
84
85set(PACKAGE ${PACKAGE_NAME})
86set(PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}")
87set(VERSION ${thrift_VERSION})
88
89# generate a config.h file
Roger Meier2e053162015-02-19 17:27:53 +010090configure_file("${CMAKE_CURRENT_SOURCE_DIR}/build/cmake/config.h.in" "${CMAKE_CURRENT_BINARY_DIR}/thrift/config.h")
James E. King, III7edc8fa2017-01-20 10:11:41 -050091
92include_directories("${CMAKE_CURRENT_BINARY_DIR}")