# ----------------------------------------------------------------------------
# package information
set (PACKAGE_NAME "gflags")
-set (PACKAGE_VERSION "2.1.0")
+set (PACKAGE_VERSION "2.1.1")
set (PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}")
set (PACKAGE_TARNAME "${PACKAGE_NAME}-${PACKAGE_VERSION}")
set (PACKAGE_BUGREPORT "https://code.google.com/p/gflags/issues/")
PACKAGE_VERSION_PATCH
)
+set (PACKAGE_SOVERSION "${PACKAGE_VERSION_MAJOR}")
+
# ----------------------------------------------------------------------------
# options
-set (GFLAGS_NAMESPACE "${PACKAGE_NAME}" CACHE STRING "C++ namespace identifier of gflags library.")
+set (GFLAGS_NAMESPACE "${PACKAGE_NAME}" CACHE STRING "C++ namespace identifier of gflags library.")
+set (GFLAGS_INCLUDE_DIR "${PACKAGE_NAME}" CACHE STRING "Include subdirectory of gflags header files.")
+
+if (IS_ABSOLUTE GFLAGS_INCLUDE_DIR)
+ message (FATAL_ERROR "GFLAGS_INCLUDE_DIR must be a path relative to CMAKE_INSTALL_PREFIX/include")
+endif ()
+if (GFLAGS_INCLUDE_DIR MATCHES "^\\.\\.[/\\]")
+ message (FATAL_ERROR "GFLAGS_INCLUDE_DIR must not start with parent directory reference (../)")
+endif ()
option (BUILD_SHARED_LIBS "Request build of shared libraries." OFF)
option (BUILD_STATIC_LIBS "Request build of static libraries (default if BUILD_SHARED_LIBS is OFF)." OFF)
mark_as_advanced (CLEAR CMAKE_INSTALL_PREFIX)
mark_as_advanced (CMAKE_CONFIGURATION_TYPES
GFLAGS_NAMESPACE
+ GFLAGS_INCLUDE_DIR
BUILD_STATIC_LIBS
BUILD_NC_TESTS
INSTALL_HEADERS)
set (GFLAGS_ATTRIBUTE_UNUSED)
endif ()
+# whenever we build a shared library (DLL on Windows), configure the public
+# headers of the API for use of this library rather than the optionally
+# also build statically linked library; users can override GFLAGS_DLL_DECL
+if (BUILD_SHARED_LIBS)
+ set (GFLAGS_IS_A_DLL 1)
+else ()
+ set (GFLAGS_IS_A_DLL 0)
+endif ()
+
configure_headers (PUBLIC_HDRS ${PUBLIC_HDRS})
configure_sources (PRIVATE_HDRS ${PRIVATE_HDRS})
configure_sources (GFLAGS_SRCS ${GFLAGS_SRCS})
include_directories ("${PROJECT_SOURCE_DIR}/src")
include_directories ("${PROJECT_BINARY_DIR}/include")
-include_directories ("${PROJECT_BINARY_DIR}/include/${GFLAGS_NAMESPACE}")
+include_directories ("${PROJECT_BINARY_DIR}/include/${GFLAGS_INCLUDE_DIR}")
# ----------------------------------------------------------------------------
# output directories
endif ()
set_target_properties (
gflags${opts}-${type} PROPERTIES COMPILE_DEFINITIONS "${defines}"
- OUTPUT_NAME "gflags${opts}"
+ OUTPUT_NAME "gflags${opts}"
+ VERSION "${PACKAGE_VERSION}"
+ SOVERSION "${PACKAGE_SOVERSION}"
)
if (HAVE_SHLWAPI_H)
target_link_libraries (gflags${opts}-${type} shlwapi.lib)
set (CONFIG_INSTALL_DIR CMake)
else ()
set (RUNTIME_INSTALL_DIR bin)
- set (LIBRARY_INSTALL_DIR lib)
+ # The LIB_INSTALL_DIR and LIB_SUFFIX variables are used by the Fedora
+ # package maintainers. Also package maintainers of other distribution
+ # packages need to be able to specify the name of the library directory.
+ if (NOT LIB_INSTALL_DIR)
+ set (LIB_INSTALL_DIR "lib${LIB_SUFFIX}")
+ endif ()
+ set (LIBRARY_INSTALL_DIR "${LIB_INSTALL_DIR}"
+ CACHE PATH "Directory of installed libraries, e.g., \"lib64\""
+ )
+ mark_as_advanced (LIBRARY_INSTALL_DIR)
set (INCLUDE_INSTALL_DIR include)
- set (CONFIG_INSTALL_DIR lib/cmake/${PACKAGE_NAME})
+ set (CONFIG_INSTALL_DIR ${LIBRARY_INSTALL_DIR}/cmake/${PACKAGE_NAME})
endif ()
file (RELATIVE_PATH INSTALL_PREFIX_REL2CONFIG_DIR "${CMAKE_INSTALL_PREFIX}/${CONFIG_INSTALL_DIR}" "${CMAKE_INSTALL_PREFIX}")
install (TARGETS ${TARGETS} DESTINATION ${LIBRARY_INSTALL_DIR} EXPORT gflags-lib)
if (INSTALL_HEADERS)
- install (FILES ${PUBLIC_HDRS} DESTINATION ${INCLUDE_INSTALL_DIR}/${GFLAGS_NAMESPACE})
+ install (FILES ${PUBLIC_HDRS} DESTINATION ${INCLUDE_INSTALL_DIR}/${GFLAGS_INCLUDE_DIR})
install (
FILES "${PROJECT_BINARY_DIR}/${PACKAGE_NAME}-config-install.cmake"
RENAME ${PACKAGE_NAME}-config.cmake
set (CPACK_SYSTEM_NAME "win32")
endif ()
set (CPACK_PACKAGE_ARCHITECTURE)
+ elseif (APPLE)
+ set (CPACK_PACKAGE_ARCHITECTURE darwin)
else ()
string (TOLOWER "${CMAKE_SYSTEM_NAME}" CPACK_SYSTEM_NAME)
- execute_process (
- COMMAND dpkg --print-architecture
- RESULT_VARIABLE RV
- OUTPUT_VARIABLE CPACK_PACKAGE_ARCHITECTURE
- )
- if (RV EQUAL 0)
- string (STRIP "${CPACK_PACKAGE_ARCHITECTURE}" CPACK_PACKAGE_ARCHITECTURE)
+ if (CMAKE_CXX_FLAGS MATCHES "-m32")
+ set (CPACK_PACKAGE_ARCHITECTURE i386)
else ()
- execute_process (COMMAND uname -m OUTPUT_VARIABLE CPACK_PACKAGE_ARCHITECTURE)
- if (CPACK_PACKAGE_ARCHITECTURE MATCHES "x86_64")
- set (CPACK_PACKAGE_ARCHITECTURE amd64)
+ execute_process (
+ COMMAND dpkg --print-architecture
+ RESULT_VARIABLE RV
+ OUTPUT_VARIABLE CPACK_PACKAGE_ARCHITECTURE
+ )
+ if (RV EQUAL 0)
+ string (STRIP "${CPACK_PACKAGE_ARCHITECTURE}" CPACK_PACKAGE_ARCHITECTURE)
else ()
- set (CPACK_PACKAGE_ARCHITECTURE i386)
+ execute_process (COMMAND uname -m OUTPUT_VARIABLE CPACK_PACKAGE_ARCHITECTURE)
+ if (CPACK_PACKAGE_ARCHITECTURE MATCHES "x86_64")
+ set (CPACK_PACKAGE_ARCHITECTURE amd64)
+ else ()
+ set (CPACK_PACKAGE_ARCHITECTURE i386)
+ endif ()
endif ()
endif ()
endif ()