From 78d470c7a50d3788bf3f819eba99597aea43674f Mon Sep 17 00:00:00 2001 From: Jisi Liu Date: Fri, 12 Jun 2015 15:49:21 -0700 Subject: Make the code independent of config.h Now the Build tool needs to define -DHAVE_ZLIB and -DHAVE-PTHREAD rather than providing a config.h - Make pbconfig.h a manually written file to handle hash conditions according to platform related macros. - Remove #include "config.h" from source code. - Changed the configure.ac and Makefile.am to pass down the macros. - Change cmake to pass down the the macros. Change-Id: I537249d5df8fdeba189706aec436d1ab1104a4dc --- cmake/CMakeLists.txt | 14 +++--- cmake/config.h.in | 4 -- cmake/find_hash_map.cmake | 119 ---------------------------------------------- cmake/pbconfig.h.in | 9 ---- 4 files changed, 7 insertions(+), 139 deletions(-) delete mode 100644 cmake/config.h.in delete mode 100644 cmake/find_hash_map.cmake delete mode 100644 cmake/pbconfig.h.in (limited to 'cmake') diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 727864ba..d36292df 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -8,11 +8,11 @@ if (MSVC) option(ZLIB "Build with zlib support" OFF) endif (MSVC) +add_definitions(-DGOOGLE_PROTOBUF_CMAKE_BUILD) + find_package(Threads REQUIRED) if (CMAKE_USE_PTHREADS_INIT) - set(HAVE_PTHREAD 1) -else (CMAKE_USE_PTHREADS_INIT) - set(HAVE_PTHREAD 0) + add_definitions(-DHAVE_PTHREAD) endif (CMAKE_USE_PTHREADS_INIT) if (MSVC) @@ -36,6 +36,10 @@ else (MSVC) endif (ZLIB_FOUND) endif (MSVC) +if (HAVE_ZLIB) + add_definitions(-DHAVE_ZLIB) +endif (HAVE_ZLIB) + if (MSVC) if (BUILD_SHARED_LIBS) add_definitions(-DPROTOBUF_USE_DLLS) @@ -43,10 +47,6 @@ if (MSVC) add_definitions(/wd4244 /wd4267 /wd4018 /wd4355 /wd4800 /wd4251 /wd4996 /wd4146 /wd4305) endif (MSVC) -include(find_hash_map.cmake) - -configure_file(config.h.in config.h) -configure_file(pbconfig.h.in google/protobuf/stubs/pbconfig.h) if (MSVC) string(REPLACE "/" "\\" PROTOBUF_SOURCE_WIN32_PATH ${protobuf_SOURCE_DIR}) string(REPLACE "/" "\\" PROTOBUF_BINARY_WIN32_PATH ${protobuf_BINARY_DIR}) diff --git a/cmake/config.h.in b/cmake/config.h.in deleted file mode 100644 index bca1cbba..00000000 --- a/cmake/config.h.in +++ /dev/null @@ -1,4 +0,0 @@ -#define GOOGLE_PROTOBUF_CMAKE_BUILD - -#define HAVE_PTHREAD ${HAVE_PTHREAD} -#define HAVE_ZLIB ${HAVE_ZLIB} diff --git a/cmake/find_hash_map.cmake b/cmake/find_hash_map.cmake deleted file mode 100644 index 22796fb8..00000000 --- a/cmake/find_hash_map.cmake +++ /dev/null @@ -1,119 +0,0 @@ -include(CheckCXXSourceCompiles) - -function(find_hash_map) - set(HAVE_HASH_MAP 1 PARENT_SCOPE) - set(HAVE_HASH_SET 1 PARENT_SCOPE) - # Search for hash_map in the following order: - # 1. ::std::unordered_map - # 2. ::std::tr1::unordered_map - # 3. ::hash_map - # 4. ::stdext::hash_map - # 5. ::std::hash_map - # 6. ::__gnu_cxx::hash_map - check_cxx_source_compiles(" - #include - int main() { ::std::unordered_map v; return v[0]; } - " HAS_STD_UNORDERED_MAP) - if (HAS_STD_UNORDERED_MAP) - set(HASH_NAMESPACE ::std PARENT_SCOPE) - set(HASH_MAP_H PARENT_SCOPE) - set(HASH_MAP_CLASS unordered_map PARENT_SCOPE) - set(HASH_SET_H PARENT_SCOPE) - set(HASH_SET_CLASS unordered_set PARENT_SCOPE) - return() - endif (HAS_STD_UNORDERED_MAP) - - check_cxx_source_compiles(" - #include - int main() { ::std::tr1::unordered_map v; return v[0]; } - " HAS_STD_TR1_UNORDERED_MAP) - if (HAS_STD_TR1_UNORDERED_MAP) - set(HASH_NAMESPACE ::std::tr1 PARENT_SCOPE) - set(HASH_MAP_H PARENT_SCOPE) - set(HASH_MAP_CLASS unordered_map PARENT_SCOPE) - set(HASH_SET_H PARENT_SCOPE) - set(HASH_SET_CLASS unordered_set PARENT_SCOPE) - return() - endif (HAS_STD_TR1_UNORDERED_MAP) - - check_cxx_source_compiles(" - #include - int main() { ::hash_map v; return v[0]; } - " HAS_HASH_MAP) - if (HAS_HASH_MAP) - set(HASH_NAMESPACE :: PARENT_SCOPE) - set(HASH_MAP_H PARENT_SCOPE) - set(HASH_MAP_CLASS hash_map PARENT_SCOPE) - set(HASH_SET_H PARENT_SCOPE) - set(HASH_SET_CLASS hash_set PARENT_SCOPE) - return() - endif (HAS_HASH_MAP) - - check_cxx_source_compiles(" - #include - int main() { ::stdext::hash_map v; return v[0]; } - " HAS_STDEXT_HASH_MAP) - if (HAS_STDEXT_HASH_MAP) - set(HASH_NAMESPACE ::stdext PARENT_SCOPE) - set(HASH_MAP_H PARENT_SCOPE) - set(HASH_MAP_CLASS hash_map PARENT_SCOPE) - set(HASH_SET_H PARENT_SCOPE) - set(HASH_SET_CLASS hash_set PARENT_SCOPE) - return() - endif (HAS_STDEXT_HASH_MAP) - - check_cxx_source_compiles(" - #include - int main() { ::std::hash_map v; return v[0]; } - " HAS_STD_HASH_MAP) - if (HAS_STD_HASH_MAP) - set(HASH_NAMESPACE ::std PARENT_SCOPE) - set(HASH_MAP_H PARENT_SCOPE) - set(HASH_MAP_CLASS hash_map PARENT_SCOPE) - set(HASH_SET_H PARENT_SCOPE) - set(HASH_SET_CLASS hash_set PARENT_SCOPE) - return() - endif (HAS_STD_HASH_MAP) - - check_cxx_source_compiles(" - #include - int main() { ::__gnu_cxx::hash_map v; return v[0]; } - " HAS_GNU_CXX_HASH_MAP) - if (HAS_GNU_CXX_HASH_MAP) - set(HASH_NAMESPACE ::gnu_cxx PARENT_SCOPE) - set(HASH_MAP_H PARENT_SCOPE) - set(HASH_MAP_CLASS hash_map PARENT_SCOPE) - set(HASH_SET_H PARENT_SCOPE) - set(HASH_SET_CLASS hash_set PARENT_SCOPE) - return() - endif (HAS_GNU_CXX_HASH_MAP) - - set(HAVE_HASH_MAP 0 PARENT_SCOPE) - set(HAVE_HASH_SET 0 PARENT_SCOPE) -endfunction() - -function(find_hash_compare) - if (MSVC) - check_cxx_source_compiles(" - #include ${HASH_MAP_H} - int main() { ::std::hash_compare cp; return cp(0); } - " HAS_STD_HASH_COMPARE) - if (HAS_STD_HASH_COMPARE) - set(HASH_COMPARE ::std::hash_compare PARENT_SCOPE) - return() - endif (HAS_STD_HASH_COMPARE) - - check_cxx_source_compiles(" - #include ${HASH_MAP_H} - int main() { ::stdext::hash_compare cp; return cp(0); } - " HAS_STDEXT_HASH_COMPARE) - if (HAS_STDEXT_HASH_COMPARE) - set(HASH_COMPARE ::stdext::hash_compare PARENT_SCOPE) - return() - endif (HAS_STDEXT_HASH_COMPARE) - endif (MSVC) - set(HASH_COMPARE PARENT_SCOPE) -endfunction() - -find_hash_map() -find_hash_compare() diff --git a/cmake/pbconfig.h.in b/cmake/pbconfig.h.in deleted file mode 100644 index fdc59686..00000000 --- a/cmake/pbconfig.h.in +++ /dev/null @@ -1,9 +0,0 @@ -#define GOOGLE_PROTOBUF_HAVE_HASH_MAP ${HAVE_HASH_MAP} -#define GOOGLE_PROTOBUF_HAVE_HASH_SET ${HAVE_HASH_MAP} - -#define GOOGLE_PROTOBUF_HASH_NAMESPACE ${HASH_NAMESPACE} -#define GOOGLE_PROTOBUF_HASH_MAP_H ${HASH_MAP_H} -#define GOOGLE_PROTOBUF_HASH_MAP_CLASS ${HASH_MAP_CLASS} -#define GOOGLE_PROTOBUF_HASH_SET_H ${HASH_SET_H} -#define GOOGLE_PROTOBUF_HASH_SET_CLASS ${HASH_SET_CLASS} -#define GOOGLE_PROTOBUF_HASH_COMPARE ${HASH_COMPARE} -- cgit v1.2.3