cmake: remove config.h from public headers (closes #238)
[platform/upstream/glog.git] / CMakeLists.txt
index 061c182..5739702 100644 (file)
@@ -48,6 +48,7 @@ include (CTest)
 include (DetermineGflagsNamespace)
 include (GNUInstallDirs)
 
+set (CMAKE_DEBUG_POSTFIX d)
 set (CMAKE_THREAD_PREFER_PTHREAD 1)
 
 if (WITH_GFLAGS)
@@ -194,6 +195,11 @@ int main() { return i; }
 " HAVE_NAMESPACES)
 
 check_cxx_source_compiles ("
+__thread int tls;
+int main() { }
+" HAVE_GCC_TLS)
+
+check_cxx_source_compiles ("
 __declspec(thread) int tls;
 int main() { }
 " HAVE_MSVC_TLS)
@@ -203,19 +209,15 @@ thread_local int tls;
 int main() { }
 " HAVE_CXX11_TLS)
 
-check_cxx_source_compiles ("
-__attribute__((thread)) int tls;
-int main() { }
-" HAVE_CYGWIN_TLS)
-
 if (WITH_TLS)
-  if (HAVE_CYGWIN_TLS)
-    set (GLOG_THREAD_LOCAL_STORAGE "__attribute__((thread))")
+  # Cygwin does not support the thread attribute. Don't bother.
+  if (HAVE_GCC_TLS)
+    set (GLOG_THREAD_LOCAL_STORAGE "__thread")
   elseif (HAVE_MSVC_TLS)
     set (GLOG_THREAD_LOCAL_STORAGE "__declspec(thread)")
   elseif (HAVE_CXX11_TLS)
     set (GLOG_THREAD_LOCAL_STORAGE thread_local)
-  endif (HAVE_CYGWIN_TLS)
+  endif (HAVE_GCC_TLS)
 endif (WITH_TLS)
 
 set (_PC_FIELDS
@@ -368,7 +370,6 @@ set (CMAKE_CXX_VISIBILITY_PRESET default)
 set (CMAKE_VISIBILITY_INLINES_HIDDEN 1)
 
 set (GLOG_PUBLIC_H
-  ${CMAKE_CURRENT_BINARY_DIR}/config.h
   ${CMAKE_CURRENT_BINARY_DIR}/glog/logging.h
   ${CMAKE_CURRENT_BINARY_DIR}/glog/raw_logging.h
   ${CMAKE_CURRENT_BINARY_DIR}/glog/stl_logging.h
@@ -597,8 +598,19 @@ install (TARGETS glog
   LIBRARY DESTINATION ${_glog_CMake_LIBDIR}
   ARCHIVE DESTINATION ${_glog_CMake_LIBDIR})
 
+set (glog_POLICY_VERSION 3.0)
+
 if (gflags_FOUND)
-  set (gflags_DEPENDENCY "find_dependency (gflags ${gflags_VERSION})")
+  # Ensure clients locate only the package config and not third party find
+  # modules having the same name. This avoid cmake_policy PUSH/POP errors.
+  if (CMAKE_VERSION VERSION_LESS 3.9)
+    set (gflags_DEPENDENCY "find_dependency (gflags ${gflags_VERSION})")
+  else (CMAKE_VERSION VERSION_LESS 3.9)
+    # Passing additional find_package arguments to find_dependency is possible
+    # starting with CMake 3.9.
+    set (glog_POLICY_VERSION 3.9)
+    set (gflags_DEPENDENCY "find_dependency (gflags ${gflags_VERSION} NO_MODULE)")
+  endif (CMAKE_VERSION VERSION_LESS 3.9)
 endif (gflags_FOUND)
 
 configure_package_config_file (glog-config.cmake.in