This repository has been archived by the owner on Mar 29, 2021. It is now read-only.
forked from apache/thrift
-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #3 from isaachier/hunter-0.9.2
Hunter 0.9.2
- Loading branch information
Showing
24 changed files
with
2,213 additions
and
6 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,121 @@ | ||
# | ||
# 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. | ||
# | ||
|
||
cmake_minimum_required(VERSION 3.1) | ||
|
||
set(CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH}" "${CMAKE_CURRENT_SOURCE_DIR}/build/cmake") | ||
|
||
include(HunterGate) | ||
HunterGate(URL "https://github.com/ruslo/hunter/archive/v0.19.112.tar.gz" | ||
SHA1 "74cd301e87d79c09133b4ee252f202cd489203d8") | ||
|
||
# TODO: add `git rev-parse --short HEAD` | ||
# Read the version information from the Autoconf file | ||
file (STRINGS "${CMAKE_CURRENT_SOURCE_DIR}/configure.ac" CONFIGURE_AC REGEX "AC_INIT\\(.*\\)" ) | ||
|
||
# The following variable is used in the version.h.in file | ||
string(REGEX REPLACE "AC_INIT\\(\\[.*\\], \\[([0-9]+\\.[0-9]+\\.[0-9]+(-dev)?)\\]\\)" "\\1" PACKAGE_VERSION ${CONFIGURE_AC}) | ||
message(STATUS "Parsed Thrift package version: ${PACKAGE_VERSION}") | ||
|
||
# These are internal to CMake | ||
string(REGEX REPLACE "([0-9]+\\.[0-9]+\\.[0-9]+)(-dev)?" "\\1" thrift_VERSION ${PACKAGE_VERSION}) | ||
string(REGEX REPLACE "([0-9]+)\\.[0-9]+\\.[0-9]+" "\\1" thrift_VERSION_MAJOR ${thrift_VERSION}) | ||
string(REGEX REPLACE "[0-9]+\\.([0-9])+\\.[0-9]+" "\\1" thrift_VERSION_MINOR ${thrift_VERSION}) | ||
string(REGEX REPLACE "[0-9]+\\.[0-9]+\\.([0-9]+)" "\\1" thrift_VERSION_PATCH ${thrift_VERSION}) | ||
message(STATUS "Parsed Thrift version: ${thrift_VERSION} (${thrift_VERSION_MAJOR}.${thrift_VERSION_MINOR}.${thrift_VERSION_PATCH})") | ||
|
||
project(thrift VERSION ${thrift_VERSION}) | ||
|
||
# Some default settings | ||
include(DefineCMakeDefaults) | ||
|
||
# Build time options are defined here | ||
include(DefineOptions) | ||
include(DefineInstallationPaths) | ||
|
||
# Based on the options set some platform specifics | ||
include(DefinePlatformSpecifc) | ||
|
||
# Generate the config.h file | ||
include(ConfigureChecks) | ||
|
||
# Package it | ||
include(CPackConfig) | ||
|
||
|
||
find_package(Threads) | ||
|
||
include(CTest) | ||
if(BUILD_TESTING) | ||
message(STATUS "Building with unittests") | ||
|
||
enable_testing() | ||
# Define "make check" as alias for "make test" | ||
add_custom_target(check COMMAND ctest) | ||
else () | ||
message(STATUS "Building without tests") | ||
endif () | ||
|
||
if(BUILD_COMPILER) | ||
if(NOT EXISTS ${THRIFT_COMPILER}) | ||
set(THRIFT_COMPILER $<TARGET_FILE:thrift-compiler>) | ||
endif() | ||
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/compiler/cpp) | ||
elseif(EXISTS ${THRIFT_COMPILER}) | ||
add_executable(thrift-compiler IMPORTED) | ||
set_property(TARGET thrift-compiler PROPERTY IMPORTED_LOCATION ${THRIFT_COMPILER}) | ||
endif() | ||
|
||
if(BUILD_CPP) | ||
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/lib/cpp) | ||
if(BUILD_TUTORIALS) | ||
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/tutorial/cpp) | ||
endif() | ||
if(BUILD_TESTING) | ||
if(WITH_LIBEVENT AND WITH_ZLIB AND WITH_OPENSSL) | ||
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/test/cpp) | ||
else() | ||
message(WARNING "libevent and/or ZLIB and/or OpenSSL not found or disabled; will not build some tests") | ||
endif() | ||
endif() | ||
endif() | ||
|
||
if(BUILD_C_GLIB) | ||
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/lib/c_glib) | ||
endif() | ||
|
||
if(BUILD_JAVA) | ||
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/lib/java) | ||
endif() | ||
|
||
if(BUILD_PYTHON) | ||
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/lib/py) | ||
if(BUILD_TESTING) | ||
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/test/py) | ||
endif() | ||
endif() | ||
|
||
if(BUILD_HASKELL) | ||
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/lib/hs) | ||
if(BUILD_TESTING) | ||
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/test/hs) | ||
endif() | ||
endif() | ||
|
||
PRINT_CONFIG_SUMMARY() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,68 @@ | ||
# | ||
# 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. | ||
# | ||
|
||
|
||
#TODO: Should we bundle system libraries for DLLs? | ||
#include(InstallRequiredSystemLibraries) | ||
|
||
# For help take a look at: | ||
# http://www.cmake.org/Wiki/CMake:CPackConfiguration | ||
|
||
### general settings | ||
set(CPACK_PACKAGE_NAME "thrift") | ||
set(CPACK_PACKAGE_VERSION "${PACKAGE_VERSION}") | ||
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Apache Thrift") | ||
set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README.md") | ||
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE") | ||
set(CPACK_PACKAGE_VENDOR "Apache Software Foundation") | ||
set(CPACK_PACKAGE_CONTACT "[email protected]") | ||
set(CPACK_PACKAGE_INSTALL_DIRECTORY "${CPACK_PACKAGE_NAME}") | ||
set(CPACK_SYSTEM_NAME "${CMAKE_SYSTEM_NAME}") | ||
|
||
### versions | ||
set(CPACK_PACKAGE_VERSION_MAJOR ${thrift_VERSION_MAJOR}) | ||
set(CPACK_PACKAGE_VERSION_MINOR ${thrift_VERSION_MINOR}) | ||
set(CPACK_PACKAGE_VERSION_PATCH ${thrift_VERSION_PATCH}) | ||
|
||
### source generator | ||
set(CPACK_SOURCE_GENERATOR "TGZ") | ||
set(CPACK_SOURCE_IGNORE_FILES "~$;[.]swp$;/[.]svn/;/[.]git/;.gitignore;/build/;tags;cscope.*") | ||
set(CPACK_SOURCE_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}") | ||
|
||
### zip generator | ||
set(CPACK_GENERATOR "ZIP") | ||
set(CPACK_PACKAGE_INSTALL_DIRECTORY "thrift") | ||
|
||
|
||
if(CMAKE_SYSTEM_NAME STREQUAL "Windows") | ||
set(CPACK_GENERATOR "NSIS") | ||
set(CPACK_NSIS_HELP_LINK "http://thrift.apache.org") | ||
set(CPACK_NSIS_MENU_LINKS | ||
"http://thrift.apache.org" "Apache Thrift - Web Site" | ||
"https://issues.apache.org/jira/browse/THRIFT" "Apache Thrift - Issues") | ||
set(CPACK_NSIS_CONTACT ${CPACK_PACKAGE_CONTACT}) | ||
set(CPACK_NSIS_MODIFY_PATH "ON") | ||
set(CPACK_PACKAGE_INSTALL_DIRECTORY "${CPACK_PACKAGE_NAME}") | ||
else() | ||
set(CPACK_GENERATOR "DEB" ) | ||
set(CPACK_DEBIAN_PACKAGE_MAINTAINER ${CPACK_PACKAGE_CONTACT}) | ||
endif() | ||
|
||
|
||
include(CPack) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
@PACKAGE_INIT@ | ||
|
||
set(package_deps @package_deps@) | ||
foreach(dep IN LISTS package_deps) | ||
if(dep STREQUAL "OpenSSL") | ||
find_package(OpenSSL REQUIRED) | ||
else() | ||
find_package(${dep} CONFIG REQUIRED) | ||
endif() | ||
endforeach() | ||
|
||
set(boost_components @boost_components@) | ||
find_package(Boost CONFIG REQUIRED ${boost_components}) | ||
|
||
check_required_components("@PROJECT_NAME@") | ||
|
||
include("${CMAKE_CURRENT_LIST_DIR}/@[email protected]") |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,76 @@ | ||
# | ||
# 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. | ||
# | ||
|
||
|
||
include(CheckSymbolExists) | ||
include(CheckIncludeFile) | ||
include(CheckIncludeFiles) | ||
include(CheckFunctionExists) | ||
|
||
# If AI_ADDRCONFIG is not defined we define it as 0 | ||
check_symbol_exists(AI_ADDRCONFIG "sys/types.h;sys/socket.h;netdb.h" HAVE_AI_ADDRCONFIG) | ||
if(NOT HAVE_AI_ADDRCONFIG) | ||
set(AI_ADDRCONFIG 1) | ||
endif(NOT HAVE_AI_ADDRCONFIG) | ||
|
||
check_include_file(arpa/inet.h HAVE_ARPA_INET_H) | ||
check_include_file(fcntl.h HAVE_FCNTL_H) | ||
check_include_file(getopt.h HAVE_GETOPT_H) | ||
check_include_file(inttypes.h HAVE_INTTYPES_H) | ||
check_include_file(netdb.h HAVE_NETDB_H) | ||
check_include_file(netinet/in.h HAVE_NETINET_IN_H) | ||
check_include_file(stdint.h HAVE_STDINT_H) | ||
check_include_file(unistd.h HAVE_UNISTD_H) | ||
check_include_file(pthread.h HAVE_PTHREAD_H) | ||
check_include_file(sys/time.h HAVE_SYS_TIME_H) | ||
check_include_file(sys/param.h HAVE_SYS_PARAM_H) | ||
check_include_file(sys/resource.h HAVE_SYS_RESOURCE_H) | ||
check_include_file(sys/socket.h HAVE_SYS_SOCKET_H) | ||
check_include_file(sys/stat.h HAVE_SYS_STAT_H) | ||
check_include_file(sys/un.h HAVE_SYS_UN_H) | ||
check_include_file(sys/poll.h HAVE_SYS_POLL_H) | ||
check_include_file(sys/select.h HAVE_SYS_SELECT_H) | ||
check_include_file(sched.h HAVE_SCHED_H) | ||
check_include_file(strings.h HAVE_STRINGS_H) | ||
|
||
check_function_exists(gethostbyname HAVE_GETHOSTBYNAME) | ||
check_function_exists(gethostbyname_r HAVE_GETHOSTBYNAME_R) | ||
check_function_exists(strerror_r HAVE_STRERROR_R) | ||
check_function_exists(sched_get_priority_max HAVE_SCHED_GET_PRIORITY_MAX) | ||
check_function_exists(sched_get_priority_min HAVE_SCHED_GET_PRIORITY_MIN) | ||
|
||
include(CheckCSourceCompiles) | ||
include(CheckCXXSourceCompiles) | ||
|
||
check_cxx_source_compiles( | ||
" | ||
#include <string.h> | ||
int main(){char b;char *a = strerror_r(0, &b, 0); return(0);} | ||
" | ||
STRERROR_R_CHAR_P) | ||
|
||
|
||
set(PACKAGE ${PACKAGE_NAME}) | ||
set(PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}") | ||
set(VERSION ${thrift_VERSION}) | ||
|
||
# generate a config.h file | ||
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/build/cmake/config.h.in" "${CMAKE_CURRENT_BINARY_DIR}/thrift/config.h") | ||
# HACK: Some files include thrift/config.h and some config.h so we include both. This should be cleaned up. | ||
include_directories("${CMAKE_CURRENT_BINARY_DIR}/thrift" "${CMAKE_CURRENT_BINARY_DIR}") |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,70 @@ | ||
# | ||
# 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. | ||
# | ||
|
||
|
||
# Always include srcdir and builddir in include path | ||
# This saves typing ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY} in | ||
# about every subdir | ||
# since cmake 2.4.0 | ||
set(CMAKE_INCLUDE_CURRENT_DIR ON) | ||
|
||
# Put the include dirs which are in the source or build tree | ||
# before all other include dirs, so the headers in the sources | ||
# are preferred over the already installed ones | ||
# since cmake 2.4.1 | ||
set(CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE ON) | ||
|
||
# Use colored output | ||
# since cmake 2.4.0 | ||
set(CMAKE_COLOR_MAKEFILE ON) | ||
|
||
# Define the generic version of the libraries here | ||
set(GENERIC_LIB_VERSION "0.10.0") | ||
set(GENERIC_LIB_SOVERSION "0") | ||
|
||
# Set the default build type to release with debug info | ||
if (NOT CMAKE_BUILD_TYPE) | ||
set(CMAKE_BUILD_TYPE RelWithDebInfo | ||
CACHE STRING | ||
"Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel." | ||
) | ||
endif (NOT CMAKE_BUILD_TYPE) | ||
|
||
# Create the compile command database for clang by default | ||
set(CMAKE_EXPORT_COMPILE_COMMANDS ON) | ||
|
||
# Put the libraries and binaries that get built into directories at the | ||
# top of the build tree rather than in hard-to-find leaf | ||
# directories. This simplifies manual testing and the use of the build | ||
# tree rather than installed thrift libraries. | ||
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) | ||
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) | ||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) | ||
|
||
# | ||
# "rpath" support. | ||
# See http://www.itk.org/Wiki/index.php?title=CMake_RPATH_handling | ||
# | ||
# On MacOSX, for shared libraries, enable rpath support. | ||
set(CMAKE_MACOSX_RPATH TRUE) | ||
# | ||
# On any OS, for executables, allow linking with shared libraries in non-system | ||
# locations and running the executables without LD_PRELOAD or similar. | ||
# This requires the library to be built with rpath support. | ||
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
# | ||
# 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. | ||
# | ||
|
||
|
||
# Define the default install paths | ||
set(BIN_INSTALL_DIR "bin" CACHE PATH "The binary install dir (default: bin)") | ||
set(LIB_INSTALL_DIR "lib${LIB_SUFFIX}" CACHE PATH "The library install dir (default: lib${LIB_SUFFIX})") | ||
set(INCLUDE_INSTALL_DIR "include" CACHE PATH "The library install dir (default: include)") | ||
set(CMAKE_INSTALL_DIR "cmake" CACHE PATH "The subdirectory to install cmake config files (default: cmake)") | ||
set(DOC_INSTALL_DIR "share/doc" CACHE PATH "The subdirectory to install documentation files (default: share/doc)") |
Oops, something went wrong.