Blame CMakeLists.txt

Packit Service 9def5d
cmake_minimum_required (VERSION 3.0)
Packit Service 9def5d
Packit Service 9def5d
if (POLICY CMP0042)
Packit Service 9def5d
  cmake_policy (SET CMP0042 NEW)
Packit Service 9def5d
endif (POLICY CMP0042)
Packit Service 9def5d
Packit Service 9def5d
if (POLICY CMP0063)
Packit Service 9def5d
  cmake_policy (SET CMP0063 NEW)
Packit Service 9def5d
endif (POLICY CMP0063)
Packit Service 9def5d
Packit Service 9def5d
project (google-glog)
Packit Service 9def5d
Packit Service 9def5d
enable_testing ()
Packit Service 9def5d
Packit Service 9def5d
set (GLOG_MAJOR_VERSION 0)
Packit Service 9def5d
set (GLOG_MINOR_VERSION 3)
Packit Service 9def5d
set (GLOG_PATCH_VERSION 5)
Packit Service 9def5d
Packit Service 9def5d
set (GLOG_VERSION
Packit Service 9def5d
  ${GLOG_MAJOR_VERSION}.${GLOG_MINOR_VERSION}.${GLOG_PATCH_VERSION})
Packit Service 9def5d
Packit Service 9def5d
set (CPACK_PACKAGE_NAME glog)
Packit Service 9def5d
set (CPACK_PACKAGE_DESCRIPTION_SUMMARY "")
Packit Service 9def5d
set (CPACK_PACKAGE_VERSION_MAJOR ${GLOG_MAJOR_VERSION})
Packit Service 9def5d
set (CPACK_PACKAGE_VERSION_MINOR ${GLOG_MINOR_VERSION})
Packit Service 9def5d
set (CPACK_PACKAGE_VERSION_PATCH ${GLOG_PATCH_VERSION})
Packit Service 9def5d
set (CPACK_PACKAGE_VERSION ${GLOG_VERSION})
Packit Service 9def5d
Packit Service 9def5d
option (WITH_GFLAGS "Use gflags" ON)
Packit Service 9def5d
option (WITH_THREADS "Enable multithreading support" ON)
Packit Service 9def5d
Packit Service 9def5d
list (APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
Packit Service 9def5d
Packit Service 9def5d
include (CheckCSourceCompiles)
Packit Service 9def5d
include (CheckCXXCompilerFlag)
Packit Service 9def5d
include (CheckCXXSourceCompiles)
Packit Service 9def5d
include (CheckFunctionExists)
Packit Service 9def5d
include (CheckIncludeFile)
Packit Service 9def5d
include (CheckIncludeFileCXX)
Packit Service 9def5d
include (CheckLibraryExists)
Packit Service 9def5d
include (CheckStructHasMember)
Packit Service 9def5d
include (CheckSymbolExists)
Packit Service 9def5d
include (CheckTypeSize)
Packit Service 9def5d
include (CMakePackageConfigHelpers)
Packit Service 9def5d
include (CPack)
Packit Service 9def5d
include (CTest)
Packit Service 9def5d
include (DetermineGflagsNamespace)
Packit Service 9def5d
Packit Service 9def5d
set (CMAKE_THREAD_PREFER_PTHREAD 1)
Packit Service 9def5d
Packit Service 9def5d
if (WITH_GFLAGS)
Packit Service 9def5d
  find_package (gflags)
Packit Service 9def5d
Packit Service 9def5d
  if (gflags_FOUND)
Packit Service 9def5d
    set (HAVE_LIB_GFLAGS 1)
Packit Service 9def5d
    determine_gflags_namespace (gflags_NAMESPACE)
Packit Service 9def5d
  endif (gflags_FOUND)
Packit Service 9def5d
endif (WITH_GFLAGS)
Packit Service 9def5d
Packit Service 9def5d
if (WITH_THREADS)
Packit Service 9def5d
  find_package (Threads)
Packit Service 9def5d
endif (WITH_THREADS)
Packit Service 9def5d
Packit Service 9def5d
check_include_file (dlfcn.h HAVE_DLFCN_H)
Packit Service 9def5d
check_include_file (execinfo.h HAVE_EXECINFO_H)
Packit Service 9def5d
check_include_file (glob.h HAVE_GLOB_H)
Packit Service 9def5d
check_include_file (inttypes.h HAVE_INTTYPES_H)
Packit Service 9def5d
check_include_file (libunwind.h HAVE_LIBUNWIND_H)
Packit Service 9def5d
check_include_file (memory.h HAVE_MEMORY_H)
Packit Service 9def5d
check_include_file (pwd.h HAVE_PWD_H)
Packit Service 9def5d
check_include_file (stdint.h HAVE_STDINT_H)
Packit Service 9def5d
check_include_file (stdlib.h HAVE_STDLIB_H)
Packit Service 9def5d
check_include_file (string.h HAVE_STRING_H)
Packit Service 9def5d
check_include_file (strings.h HAVE_STRINGS_H)
Packit Service 9def5d
check_include_file (sys/stat.h HAVE_SYS_STAT_H)
Packit Service 9def5d
check_include_file (sys/syscall.h HAVE_SYS_SYSCALL_H)
Packit Service 9def5d
check_include_file (sys/time.h HAVE_SYS_TIME_H)
Packit Service 9def5d
check_include_file (sys/types.h HAVE_SYS_TYPES_H)
Packit Service 9def5d
check_include_file (sys/utsname.h HAVE_SYS_UTSNAME_H)
Packit Service 9def5d
check_include_file (syscall.h HAVE_SYSCALL_H)
Packit Service 9def5d
check_include_file (syslog.h HAVE_SYSLOG_H)
Packit Service 9def5d
check_include_file (ucontext.h HAVE_UCONTEXT_H)
Packit Service 9def5d
check_include_file (unistd.h HAVE_UNISTD_H)
Packit Service 9def5d
check_include_file (unwind.h HAVE_UNWIND_H)
Packit Service 9def5d
Packit Service 9def5d
check_include_file_cxx ("ext/hash_map" HAVE_EXT_HASH_MAP)
Packit Service 9def5d
check_include_file_cxx ("ext/hash_set" HAVE_EXT_HASH_SET)
Packit Service 9def5d
check_include_file_cxx ("ext/slist" HAVE_EXT_SLIST)
Packit Service 9def5d
check_include_file_cxx ("tr1/unordered_map" HAVE_TR1_UNORDERED_MAP)
Packit Service 9def5d
check_include_file_cxx ("tr1/unordered_set" HAVE_TR1_UNORDERED_SET)
Packit Service 9def5d
check_include_file_cxx ("unordered_map" HAVE_UNORDERED_MAP)
Packit Service 9def5d
check_include_file_cxx ("unordered_set" HAVE_UNORDERED_SET)
Packit Service 9def5d
Packit Service 9def5d
check_type_size ("unsigned __int16" HAVE___UINT16)
Packit Service 9def5d
check_type_size (u_int16_t HAVE_U_INT16_T)
Packit Service 9def5d
check_type_size (uint16_t HAVE_UINT16_T)
Packit Service 9def5d
Packit Service 9def5d
check_function_exists (dladdr HAVE_DLADDR)
Packit Service 9def5d
check_function_exists (fcntl HAVE_FCNTL)
Packit Service 9def5d
check_function_exists (pread HAVE_PREAD)
Packit Service 9def5d
check_function_exists (pwrite HAVE_PWRITE)
Packit Service 9def5d
check_function_exists (sigaction HAVE_SIGACTION)
Packit Service 9def5d
check_function_exists (sigaltstack HAVE_SIGALSTACK)
Packit Service 9def5d
Packit Service 9def5d
# NOTE gcc does not fail if you pass a non-existent -Wno-* option as an
Packit Service 9def5d
# argument. However, it will happily fail if you pass the corresponding -W*
Packit Service 9def5d
# option. So, we check whether options that disable warnings exist by testing
Packit Service 9def5d
# the availability of the corresponding option that enables the warning. This
Packit Service 9def5d
# eliminates the need to check for compiler for several (mainly Clang) options.
Packit Service 9def5d
Packit Service 9def5d
check_cxx_compiler_flag (-Wdeprecated HAVE_NO_DEPRECATED)
Packit Service 9def5d
check_cxx_compiler_flag (-Wunnamed-type-template-args
Packit Service 9def5d
    HAVE_NO_UNNAMED_TYPE_TEMPLATE_ARGS)
Packit Service 9def5d
Packit Service 9def5d
# NOTE: Cannot use check_function_exists here since >=vc-14.0 can define
Packit Service 9def5d
# snprintf as an inline function
Packit Service 9def5d
check_symbol_exists (snprintf stdio.h HAVE_SNPRINTF)
Packit Service 9def5d
Packit Service 9def5d
check_library_exists (unwind get_static_proc_name "" HAVE_LIB_UNWIND)
Packit Service 9def5d
Packit Service 9def5d
find_library (UNWIND_LIBRARY NAMES unwind DOC "unwind library")
Packit Service 9def5d
mark_as_advanced (UNWIND_LIBRARY)
Packit Service 9def5d
Packit Service 9def5d
check_c_source_compiles ("
Packit Service 9def5d
#include <stdlib.h>
Packit Service 9def5d
static void foo(void) __attribute__ ((unused));
Packit Service 9def5d
int main(void) { return 0; }
Packit Service 9def5d
" HAVE___ATTRIBUTE__)
Packit Service 9def5d
Packit Service 9def5d
check_c_source_compiles ("
Packit Service 9def5d
#include <stdlib.h>
Packit Service 9def5d
static void foo(void) __attribute__ ((visibility(\"default\")));
Packit Service 9def5d
int main(void) { return 0; }
Packit Service 9def5d
" HAVE___ATTRIBUTE__VISIBILITY_DEFAULT)
Packit Service 9def5d
Packit Service 9def5d
check_c_source_compiles ("
Packit Service 9def5d
#include <stdlib.h>
Packit Service 9def5d
static void foo(void) __attribute__ ((visibility(\"hidden\")));
Packit Service 9def5d
int main(void) { return 0; }
Packit Service 9def5d
" HAVE___ATTRIBUTE__VISIBILITY_HIDDEN)
Packit Service 9def5d
Packit Service 9def5d
check_c_source_compiles ("
Packit Service 9def5d
int main(void) { if (__builtin_expect(0, 0)) return 1; return 0; }
Packit Service 9def5d
" HAVE___BUILTIN_EXPECT)
Packit Service 9def5d
Packit Service 9def5d
check_c_source_compiles ("
Packit Service 9def5d
int main(void)
Packit Service 9def5d
{
Packit Service 9def5d
  int a; if (__sync_val_compare_and_swap(&a, 0, 1)) return 1; return 0;
Packit Service 9def5d
}
Packit Service 9def5d
" HAVE___SYNC_VAL_COMPARE_AND_SWAP)
Packit Service 9def5d
Packit Service 9def5d
check_c_source_compiles ("
Packit Service 9def5d
#define _XOPEN_SOURCE 500
Packit Service 9def5d
#include <pthread.h>
Packit Service 9def5d
int main(void)
Packit Service 9def5d
{
Packit Service 9def5d
  pthread_rwlock_t l;
Packit Service 9def5d
  pthread_rwlock_init(&l, NULL);
Packit Service 9def5d
  pthread_rwlock_rdlock(&l);
Packit Service 9def5d
  return 0;
Packit Service 9def5d
}
Packit Service 9def5d
" HAVE_RWLOCK)
Packit Service 9def5d
Packit Service 9def5d
check_c_source_compiles ("
Packit Service 9def5d
__declspec(selectany) int a;
Packit Service 9def5d
int main(void) { return 0; }
Packit Service 9def5d
" HAVE___DECLSPEC)
Packit Service 9def5d
Packit Service 9def5d
check_cxx_source_compiles ("
Packit Service 9def5d
#include <vector>
Packit Service 9def5d
vector<int> t; int main() { }
Packit Service 9def5d
" STL_NO_NAMESPACE)
Packit Service 9def5d
Packit Service 9def5d
check_cxx_source_compiles ("
Packit Service 9def5d
#include <vector>
Packit Service 9def5d
std::vector<int> t; int main() { }
Packit Service 9def5d
" STL_STD_NAMESPACE)
Packit Service 9def5d
Packit Service 9def5d
check_cxx_source_compiles ("
Packit Service 9def5d
#include <iostream>
Packit Service 9def5d
std::ostream& operator<<(std::ostream&, struct s);
Packit Service 9def5d
using ::operator<<;
Packit Service 9def5d
int main() { }
Packit Service 9def5d
" HAVE_USING_OPERATOR)
Packit Service 9def5d
Packit Service 9def5d
check_cxx_source_compiles ("
Packit Service 9def5d
namespace Outer { namespace Inner { int i = 0; }}
Packit Service 9def5d
using namespace Outer::Inner;;
Packit Service 9def5d
int main() { return i; }
Packit Service 9def5d
" HAVE_NAMESPACES)
Packit Service 9def5d
Packit Service 9def5d
set (_PC_FIELDS
Packit Service 9def5d
  "gregs[REG_PC]"
Packit Service 9def5d
  "gregs[REG_EIP]"
Packit Service 9def5d
  "gregs[REG_RIP]"
Packit Service 9def5d
  "sc_ip"
Packit Service 9def5d
  "uc_regs->gregs[PT_NIP]"
Packit Service 9def5d
  "gregs[R15]"
Packit Service 9def5d
  "arm_pc"
Packit Service 9def5d
  "mc_eip"
Packit Service 9def5d
  "mc_rip"
Packit Service 9def5d
  "__gregs[REG_EIP]"
Packit Service 9def5d
  "__gregs[REG_RIP]"
Packit Service 9def5d
  "ss.eip"
Packit Service 9def5d
  "__ss.__eip"
Packit Service 9def5d
  "ss.rip"
Packit Service 9def5d
  "__ss.__rip"
Packit Service 9def5d
  "ss.srr0"
Packit Service 9def5d
  "__ss.__srr0"
Packit Service 9def5d
)
Packit Service 9def5d
Packit Service 9def5d
set (_PC_HEADERS ucontext.h signal.h)
Packit Service 9def5d
Packit Service 9def5d
if (HAVE_UCONTEXT_H AND NOT PC_FROM_UCONTEXT)
Packit Service 9def5d
  foreach (_PC_FIELD ${_PC_FIELDS})
Packit Service 9def5d
    foreach (_PC_HEADER ${_PC_HEADERS})
Packit Service 9def5d
      set (_TMP
Packit Service 9def5d
      ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/uctfield.c)
Packit Service 9def5d
      file (WRITE ${_TMP} "
Packit Service 9def5d
#define _GNU_SOURCE 1
Packit Service 9def5d
#include <${_PC_HEADER}>
Packit Service 9def5d
int main(void)
Packit Service 9def5d
{
Packit Service 9def5d
  ucontext_t u;
Packit Service 9def5d
  return u.${_PC_FIELD} == 0;
Packit Service 9def5d
}
Packit Service 9def5d
")
Packit Service 9def5d
      try_compile (HAVE_PC_FROM_UCONTEXT ${CMAKE_CURRENT_BINARY_DIR} ${_TMP}
Packit Service 9def5d
        COMPILE_DEFINITIONS _GNU_SOURCE=1)
Packit Service 9def5d
Packit Service 9def5d
      if (HAVE_PC_FROM_UCONTEXT)
Packit Service 9def5d
        set (PC_FROM_UCONTEXT ${_PC_FIELD} CACHE)
Packit Service 9def5d
      endif (HAVE_PC_FROM_UCONTEXT)
Packit Service 9def5d
    endforeach (_PC_HEADER)
Packit Service 9def5d
  endforeach (_PC_FIELD)
Packit Service 9def5d
endif  (HAVE_UCONTEXT_H AND NOT PC_FROM_UCONTEXT)
Packit Service 9def5d
Packit Service 9def5d
if (STL_STD_NAMESPACE)
Packit Service 9def5d
  set (STL_NAMESPACE std)
Packit Service 9def5d
else (STL_STD_NAMESPACE)
Packit Service 9def5d
  set (STL_NAMESPACE "")
Packit Service 9def5d
endif (STL_STD_NAMESPACE)
Packit Service 9def5d
Packit Service 9def5d
set (GOOGLE_NAMESPACE google)
Packit Service 9def5d
set (_START_GOOGLE_NAMESPACE_ "namespace ${GOOGLE_NAMESPACE} {")
Packit Service 9def5d
set (_END_GOOGLE_NAMESPACE_ "}")
Packit Service 9def5d
Packit Service 9def5d
if (HAVE___UINT16)
Packit Service 9def5d
  set (ac_cv_have___uint16 1)
Packit Service 9def5d
else (HAVE___UINT16)
Packit Service 9def5d
  set (ac_cv_have___uint16 0)
Packit Service 9def5d
endif (HAVE___UINT16)
Packit Service 9def5d
Packit Service 9def5d
if (HAVE_INTTYPES_H)
Packit Service 9def5d
  set (ac_cv_have_inttypes_h 1)
Packit Service 9def5d
else (HAVE_INTTYPES_H)
Packit Service 9def5d
  set (ac_cv_have_inttypes_h 0)
Packit Service 9def5d
endif (HAVE_INTTYPES_H)
Packit Service 9def5d
Packit Service 9def5d
if (HAVE_LIB_GFLAGS)
Packit Service 9def5d
  set (ac_cv_have_libgflags 1)
Packit Service 9def5d
else (HAVE_LIB_GFLAGS)
Packit Service 9def5d
  set (ac_cv_have_libgflags 0)
Packit Service 9def5d
endif (HAVE_LIB_GFLAGS)
Packit Service 9def5d
Packit Service 9def5d
if (HAVE_STDINT_H)
Packit Service 9def5d
  set (ac_cv_have_stdint_h 1)
Packit Service 9def5d
else (HAVE_STDINT_H)
Packit Service 9def5d
  set (ac_cv_have_stdint_h 0)
Packit Service 9def5d
endif (HAVE_STDINT_H)
Packit Service 9def5d
Packit Service 9def5d
if (HAVE_SYS_TYPES_H)
Packit Service 9def5d
  set (ac_cv_have_systypes_h 1)
Packit Service 9def5d
else (HAVE_SYS_TYPES_H)
Packit Service 9def5d
  set (ac_cv_have_systypes_h 0)
Packit Service 9def5d
endif (HAVE_SYS_TYPES_H)
Packit Service 9def5d
Packit Service 9def5d
if (HAVE_U_INT16_T)
Packit Service 9def5d
  set (ac_cv_have_u_int16_t 1)
Packit Service 9def5d
else (HAVE_U_INT16_T)
Packit Service 9def5d
  set (ac_cv_have_u_int16_t 0)
Packit Service 9def5d
endif (HAVE_U_INT16_T)
Packit Service 9def5d
Packit Service 9def5d
if (HAVE_UINT16_T)
Packit Service 9def5d
  set (ac_cv_have_uint16_t 1)
Packit Service 9def5d
else (HAVE_UINT16_T)
Packit Service 9def5d
  set (ac_cv_have_uint16_t 0)
Packit Service 9def5d
endif (HAVE_UINT16_T)
Packit Service 9def5d
Packit Service 9def5d
if (HAVE_UNISTD_H)
Packit Service 9def5d
  set (ac_cv_have_unistd_h 1)
Packit Service 9def5d
else (HAVE_UNISTD_H)
Packit Service 9def5d
  set (ac_cv_have_unistd_h 0)
Packit Service 9def5d
endif (HAVE_UNISTD_H)
Packit Service 9def5d
Packit Service 9def5d
set (ac_google_namespace ${GOOGLE_NAMESPACE})
Packit Service 9def5d
set (ac_google_end_namespace ${_END_GOOGLE_NAMESPACE_})
Packit Service 9def5d
set (ac_google_start_namespace ${_START_GOOGLE_NAMESPACE_})
Packit Service 9def5d
Packit Service 9def5d
if (HAVE___ATTRIBUTE__)
Packit Service 9def5d
  set (ac_cv___attribute___noreturn "__attribute__((noreturn))")
Packit Service 9def5d
  set (ac_cv___attribute___noinline "__attribute__((noinline))")
Packit Service 9def5d
elseif (HAVE___DECLSPEC)
Packit Service 9def5d
  set (ac_cv___attribute___noreturn "__declspec(noreturn)")
Packit Service 9def5d
  #set (ac_cv___attribute___noinline "__declspec(noinline)")
Packit Service 9def5d
endif (HAVE___ATTRIBUTE__)
Packit Service 9def5d
Packit Service 9def5d
if (HAVE___BUILTIN_EXPECT)
Packit Service 9def5d
  set (ac_cv_have___builtin_expect 1)
Packit Service 9def5d
else (HAVE___BUILTIN_EXPECT)
Packit Service 9def5d
  set (ac_cv_have___builtin_expect 0)
Packit Service 9def5d
endif (HAVE___BUILTIN_EXPECT)
Packit Service 9def5d
Packit Service 9def5d
if (HAVE_USING_OPERATOR)
Packit Service 9def5d
  set (ac_cv_cxx_using_operator 1)
Packit Service 9def5d
else (HAVE_USING_OPERATOR)
Packit Service 9def5d
  set (ac_cv_cxx_using_operator 0)
Packit Service 9def5d
endif (HAVE_USING_OPERATOR)
Packit Service 9def5d
Packit Service 9def5d
set (SIZEOF_VOID_P ${CMAKE_SIZEOF_VOID_P})
Packit Service 9def5d
Packit Service 9def5d
if (WITH_THREADS AND Threads_FOUND)
Packit Service 9def5d
  if (CMAKE_USE_PTHREADS_INIT)
Packit Service 9def5d
    set (HAVE_PTHREAD 1)
Packit Service 9def5d
  endif (CMAKE_USE_PTHREADS_INIT)
Packit Service 9def5d
else (WITH_THREADS AND Threads_FOUND)
Packit Service 9def5d
  set (NO_THREADS 1)
Packit Service 9def5d
endif (WITH_THREADS AND Threads_FOUND)
Packit Service 9def5d
Packit Service 9def5d
set (TEST_SRC_DIR \"${CMAKE_CURRENT_SOURCE_DIR}\")
Packit Service 9def5d
Packit Service 9def5d
configure_file (src/config.h.cmake.in config.h)
Packit Service 9def5d
configure_file (src/glog/logging.h.in glog/logging.h @ONLY)
Packit Service 9def5d
configure_file (src/glog/raw_logging.h.in glog/raw_logging.h @ONLY)
Packit Service 9def5d
configure_file (src/glog/stl_logging.h.in glog/stl_logging.h @ONLY)
Packit Service 9def5d
configure_file (src/glog/vlog_is_on.h.in glog/vlog_is_on.h @ONLY)
Packit Service 9def5d
Packit Service 9def5d
set (CMAKE_CXX_VISIBILITY_PRESET default)
Packit Service 9def5d
set (CMAKE_VISIBILITY_INLINES_HIDDEN 1)
Packit Service 9def5d
Packit Service 9def5d
set (GLOG_PUBLIC_H
Packit Service 9def5d
  ${CMAKE_CURRENT_BINARY_DIR}/config.h
Packit Service 9def5d
  ${CMAKE_CURRENT_BINARY_DIR}/glog/logging.h
Packit Service 9def5d
  ${CMAKE_CURRENT_BINARY_DIR}/glog/raw_logging.h
Packit Service 9def5d
  ${CMAKE_CURRENT_BINARY_DIR}/glog/stl_logging.h
Packit Service 9def5d
  ${CMAKE_CURRENT_BINARY_DIR}/glog/vlog_is_on.h
Packit Service 9def5d
  src/glog/log_severity.h
Packit Service 9def5d
)
Packit Service 9def5d
Packit Service 9def5d
set (GLOG_SRCS
Packit Service 9def5d
  ${GLOG_PUBLIC_H}
Packit Service 9def5d
  src/base/commandlineflags.h
Packit Service 9def5d
  src/base/googleinit.h
Packit Service 9def5d
  src/base/mutex.h
Packit Service 9def5d
  src/demangle.cc
Packit Service 9def5d
  src/demangle.h
Packit Service 9def5d
  src/logging.cc
Packit Service 9def5d
  src/raw_logging.cc
Packit Service 9def5d
  src/symbolize.cc
Packit Service 9def5d
  src/symbolize.h
Packit Service 9def5d
  src/utilities.cc
Packit Service 9def5d
  src/utilities.h
Packit Service 9def5d
  src/vlog_is_on.cc
Packit Service 9def5d
)
Packit Service 9def5d
Packit Service 9def5d
if (HAVE_PTHREAD)
Packit Service 9def5d
  list (APPEND GLOG_SRCS src/signalhandler.cc)
Packit Service 9def5d
endif (HAVE_PTHREAD)
Packit Service 9def5d
Packit Service 9def5d
if (WIN32)
Packit Service 9def5d
  list (APPEND GLOG_SRCS
Packit Service 9def5d
    src/windows/port.cc
Packit Service 9def5d
    src/windows/port.h
Packit Service 9def5d
  )
Packit Service 9def5d
endif (WIN32)
Packit Service 9def5d
Packit Service 9def5d
add_compile_options ($<$<BOOL:${HAVE_NO_UNNAMED_TYPE_TEMPLATE_ARGS}>:-Wno-unnamed-type-template-args>)
Packit Service 9def5d
Packit Service 9def5d
add_library (glog
Packit Service 9def5d
  ${GLOG_SRCS}
Packit Service 9def5d
)
Packit Service 9def5d
Packit Service 9def5d
set_target_properties (glog PROPERTIES POSITION_INDEPENDENT_CODE ON)
Packit Service 9def5d
Packit Service 9def5d
if (UNWIND_LIBRARY)
Packit Service 9def5d
  target_link_libraries (glog PUBLIC ${UNWIND_LIBRARY})
Packit Service 9def5d
endif (UNWIND_LIBRARY)
Packit Service 9def5d
Packit Service 9def5d
if (HAVE_PTHREAD)
Packit Service 9def5d
  target_link_libraries (glog PUBLIC ${CMAKE_THREAD_LIBS_INIT})
Packit Service 9def5d
endif (HAVE_PTHREAD)
Packit Service 9def5d
Packit Service 9def5d
if (WIN32 AND HAVE_SNPRINTF)
Packit Service 9def5d
  set_property (SOURCE src/windows/port.cc APPEND PROPERTY COMPILE_DEFINITIONS
Packit Service 9def5d
    HAVE_SNPRINTF)
Packit Service 9def5d
endif (WIN32 AND HAVE_SNPRINTF)
Packit Service 9def5d
Packit Service 9def5d
if (gflags_FOUND)
Packit Service 9def5d
  target_include_directories (glog PUBLIC $<BUILD_INTERFACE:${gflags_INCLUDE_DIR}>)
Packit Service 9def5d
  target_link_libraries (glog PUBLIC ${gflags_LIBRARIES})
Packit Service 9def5d
Packit Service 9def5d
  if (NOT BUILD_SHARED_LIBS)
Packit Service 9def5d
    # Don't use __declspec(dllexport|dllimport) if this is a static build
Packit Service 9def5d
    targeT_compile_definitions (glog PUBLIC GFLAGS_DLL_DECLARE_FLAG= GFLAGS_DLL_DEFINE_FLAG=)
Packit Service 9def5d
  endif (NOT BUILD_SHARED_LIBS)
Packit Service 9def5d
endif (gflags_FOUND)
Packit Service 9def5d
Packit Service 9def5d
set_target_properties (glog PROPERTIES VERSION ${GLOG_MAJOR_VERSION})
Packit Service 9def5d
set_target_properties (glog PROPERTIES SOVERSION ${GLOG_VERSION})
Packit Service 9def5d
Packit Service 9def5d
if (WIN32)
Packit Service 9def5d
  target_compile_definitions (glog PUBLIC GLOG_NO_ABBREVIATED_SEVERITIES)
Packit Service 9def5d
endif (WIN32)
Packit Service 9def5d
Packit Service 9def5d
set_target_properties (glog PROPERTIES PUBLIC_HEADER "${GLOG_PUBLIC_H}")
Packit Service 9def5d
Packit Service 9def5d
target_include_directories (glog BEFORE PUBLIC
Packit Service 9def5d
  "$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>"
Packit Service 9def5d
  "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src>"
Packit Service 9def5d
  "$<INSTALL_INTERFACE:include>"
Packit Service 9def5d
  PRIVATE ${CMAKE_CURRENT_BINARY_DIR}
Packit Service 9def5d
  PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src)
Packit Service 9def5d
Packit Service 9def5d
if (WIN32)
Packit Service 9def5d
  target_include_directories (glog PUBLIC
Packit Service 9def5d
    "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src/windows>"
Packit Service 9def5d
    PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src/windows)
Packit Service 9def5d
endif (WIN32)
Packit Service 9def5d
Packit Service 9def5d
set_target_properties (glog PROPERTIES DEFINE_SYMBOL LIBGLOG_EXPORTS)
Packit Service 9def5d
Packit Service 9def5d
if (NOT BUILD_SHARED_LIBS)
Packit Service 9def5d
  target_compile_definitions (glog PUBLIC GOOGLE_GLOG_DLL_DECL=)
Packit Service 9def5d
else (NOT BUILD_SHARED_LIBS)
Packit Service 9def5d
  target_compile_definitions (glog PRIVATE GOOGLE_GLOG_IS_A_DLL=1)
Packit Service 9def5d
Packit Service 9def5d
  if (HAVE___ATTRIBUTE__VISIBILITY_DEFAULT)
Packit Service 9def5d
    set (_EXPORT "__attribute__((visibility(\"default\")))")
Packit Service 9def5d
    set (_IMPORT "")
Packit Service 9def5d
  elseif (HAVE___DECLSPEC)
Packit Service 9def5d
    set (_EXPORT "__declspec(dllexport)")
Packit Service 9def5d
    set (_IMPORT "__declspec(dllimport)")
Packit Service 9def5d
  endif (HAVE___ATTRIBUTE__VISIBILITY_DEFAULT)
Packit Service 9def5d
Packit Service 9def5d
  target_compile_definitions (glog PRIVATE
Packit Service 9def5d
    "GOOGLE_GLOG_DLL_DECL=${_EXPORT}")
Packit Service 9def5d
  target_compile_definitions (glog INTERFACE
Packit Service 9def5d
    "GOOGLE_GLOG_DLL_DECL=${_IMPORT}")
Packit Service 9def5d
  target_compile_definitions (glog INTERFACE
Packit Service 9def5d
    "GOOGLE_GLOG_DLL_DECL_FOR_UNITTESTS=${_IMPORT}")
Packit Service 9def5d
endif (NOT BUILD_SHARED_LIBS)
Packit Service 9def5d
Packit Service 9def5d
if (HAVE_EXECINFO_H)
Packit Service 9def5d
  set (HAVE_STACKTRACE 1)
Packit Service 9def5d
endif (HAVE_EXECINFO_H)
Packit Service 9def5d
Packit Service 9def5d
if (UNIX OR (APPLE AND HAVE_DLADDR))
Packit Service 9def5d
  set (HAVE_SYMBOLIZE 1)
Packit Service 9def5d
endif (UNIX OR (APPLE AND HAVE_DLADDR))
Packit Service 9def5d
Packit Service 9def5d
# Unit testing
Packit Service 9def5d
Packit Service 9def5d
if (BUILD_TESTING)
Packit Service 9def5d
  add_executable (logging_unittest
Packit Service 9def5d
    src/logging_unittest.cc
Packit Service 9def5d
  )
Packit Service 9def5d
Packit Service 9def5d
  target_link_libraries (logging_unittest PRIVATE glog)
Packit Service 9def5d
Packit Service 9def5d
  add_executable (stl_logging_unittest
Packit Service 9def5d
    src/stl_logging_unittest.cc
Packit Service 9def5d
  )
Packit Service 9def5d
Packit Service 9def5d
  target_link_libraries (stl_logging_unittest PRIVATE glog)
Packit Service 9def5d
Packit Service 9def5d
  if (HAVE_NO_DEPRECATED)
Packit Service 9def5d
    set_property (TARGET stl_logging_unittest APPEND PROPERTY COMPILE_OPTIONS
Packit Service 9def5d
      -Wno-deprecated)
Packit Service 9def5d
  endif (HAVE_NO_DEPRECATED)
Packit Service 9def5d
Packit Service 9def5d
  if (HAVE_UNORDERED_MAP AND HAVE_UNORDERED_SET)
Packit Service 9def5d
    target_compile_definitions (stl_logging_unittest PRIVATE
Packit Service 9def5d
      GLOG_STL_LOGGING_FOR_UNORDERED)
Packit Service 9def5d
  endif (HAVE_UNORDERED_MAP AND HAVE_UNORDERED_SET)
Packit Service 9def5d
Packit Service 9def5d
  if (HAVE_TR1_UNORDERED_MAP AND HAVE_TR1_UNORDERED_SET)
Packit Service 9def5d
    target_compile_definitions (stl_logging_unittest PRIVATE
Packit Service 9def5d
      GLOG_STL_LOGGING_FOR_TR1_UNORDERED)
Packit Service 9def5d
  endif (HAVE_TR1_UNORDERED_MAP AND HAVE_TR1_UNORDERED_SET)
Packit Service 9def5d
Packit Service 9def5d
  if (HAVE_EXT_HASH_MAP AND HAVE_EXT_HASH_SET)
Packit Service 9def5d
    target_compile_definitions (stl_logging_unittest PRIVATE
Packit Service 9def5d
      GLOG_STL_LOGGING_FOR_EXT_HASH)
Packit Service 9def5d
  endif (HAVE_EXT_HASH_MAP AND HAVE_EXT_HASH_SET)
Packit Service 9def5d
Packit Service 9def5d
  if (HAVE_EXT_SLIST)
Packit Service 9def5d
    target_compile_definitions (stl_logging_unittest PRIVATE
Packit Service 9def5d
      GLOG_STL_LOGGING_FOR_EXT_SLIST)
Packit Service 9def5d
  endif (HAVE_EXT_SLIST)
Packit Service 9def5d
Packit Service 9def5d
  if (HAVE_SYMBOLIZE)
Packit Service 9def5d
    add_executable (symbolize_unittest
Packit Service 9def5d
      src/symbolize_unittest.cc
Packit Service 9def5d
    )
Packit Service 9def5d
Packit Service 9def5d
    target_link_libraries (symbolize_unittest PRIVATE glog)
Packit Service 9def5d
  endif (HAVE_SYMBOLIZE)
Packit Service 9def5d
Packit Service 9def5d
  add_executable (demangle_unittest
Packit Service 9def5d
    src/demangle_unittest.cc
Packit Service 9def5d
  )
Packit Service 9def5d
Packit Service 9def5d
  target_link_libraries (demangle_unittest PRIVATE glog)
Packit Service 9def5d
Packit Service 9def5d
  if (HAVE_STACKTRACE)
Packit Service 9def5d
    add_executable (stacktrace_unittest
Packit Service 9def5d
      src/stacktrace_unittest.cc
Packit Service 9def5d
    )
Packit Service 9def5d
Packit Service 9def5d
    target_link_libraries (stacktrace_unittest PRIVATE glog)
Packit Service 9def5d
  endif (HAVE_STACKTRACE)
Packit Service 9def5d
Packit Service 9def5d
  add_executable (utilities_unittest
Packit Service 9def5d
    src/utilities_unittest.cc
Packit Service 9def5d
  )
Packit Service 9def5d
Packit Service 9def5d
  target_link_libraries (utilities_unittest PRIVATE glog)
Packit Service 9def5d
Packit Service 9def5d
  if (HAVE_STACKTRACE AND HAVE_SYMBOLIZE)
Packit Service 9def5d
    add_executable (signalhandler_unittest
Packit Service 9def5d
      src/signalhandler_unittest.cc
Packit Service 9def5d
    )
Packit Service 9def5d
Packit Service 9def5d
    target_link_libraries (signalhandler_unittest PRIVATE glog)
Packit Service 9def5d
  endif (HAVE_STACKTRACE AND HAVE_SYMBOLIZE)
Packit Service 9def5d
Packit Service 9def5d
  add_test (NAME demangle COMMAND demangle_unittest)
Packit Service 9def5d
  add_test (NAME logging COMMAND logging_unittest)
Packit Service 9def5d
Packit Service 9def5d
  if (TARGET signalhandler_unittest)
Packit Service 9def5d
    add_test (NAME signalhandler COMMAND signalhandler_unittest)
Packit Service 9def5d
  endif (TARGET signalhandler_unittest)
Packit Service 9def5d
Packit Service 9def5d
  if (TARGET stacktrace_unittest)
Packit Service 9def5d
    add_test (NAME stacktrace COMMAND stacktrace_unittest)
Packit Service 9def5d
  endif (TARGET stacktrace_unittest)
Packit Service 9def5d
Packit Service 9def5d
  add_test (NAME stl_logging COMMAND stl_logging_unittest)
Packit Service 9def5d
Packit Service 9def5d
  if (TARGET symbolize_unittest)
Packit Service 9def5d
    add_test (NAME symbolize COMMAND symbolize_unittest)
Packit Service 9def5d
  endif (TARGET symbolize_unittest)
Packit Service 9def5d
endif (BUILD_TESTING)
Packit Service 9def5d
Packit Service 9def5d
install (TARGETS glog
Packit Service 9def5d
  EXPORT glog-targets
Packit Service 9def5d
  RUNTIME DESTINATION bin
Packit Service 9def5d
  PUBLIC_HEADER DESTINATION include/glog
Packit Service 9def5d
  LIBRARY DESTINATION lib
Packit Service 9def5d
  ARCHIVE DESTINATION lib)
Packit Service 9def5d
Packit Service 9def5d
if (gflags_FOUND)
Packit Service 9def5d
  set (gflags_DEPENDENCY "find_dependency (gflags ${gflags_VERSION})")
Packit Service 9def5d
endif (gflags_FOUND)
Packit Service 9def5d
Packit Service 9def5d
configure_package_config_file (glog-config.cmake.in
Packit Service 9def5d
  ${CMAKE_CURRENT_BINARY_DIR}/glog-config.cmake
Packit Service 9def5d
  INSTALL_DESTINATION lib/cmake/glog
Packit Service 9def5d
  NO_CHECK_REQUIRED_COMPONENTS_MACRO)
Packit Service 9def5d
Packit Service 9def5d
write_basic_package_version_file (glog-config-version.cmake VERSION
Packit Service 9def5d
  ${GLOG_VERSION} COMPATIBILITY SameMajorVersion)
Packit Service 9def5d
Packit Service 9def5d
export (TARGETS glog NAMESPACE glog:: FILE glog-targets.cmake)
Packit Service 9def5d
export (PACKAGE glog)
Packit Service 9def5d
Packit Service 9def5d
install (FILES
Packit Service 9def5d
  ${CMAKE_CURRENT_BINARY_DIR}/glog-config.cmake
Packit Service 9def5d
  ${CMAKE_CURRENT_BINARY_DIR}/glog-config-version.cmake
Packit Service 9def5d
  DESTINATION lib/cmake/glog)
Packit Service 9def5d
Packit Service 9def5d
install (EXPORT glog-targets NAMESPACE glog:: DESTINATION lib/cmake/glog)