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