diff options
| -rw-r--r-- | CMakeLists.txt | 51 | ||||
| -rw-r--r-- | misc/cmake/pugixml.pc | 4 | 
2 files changed, 38 insertions, 17 deletions
| diff --git a/CMakeLists.txt b/CMakeLists.txt index f1fa23d..270b875 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,6 +4,9 @@ cmake_minimum_required(VERSION 2.6)  option(BUILD_SHARED_LIBS "Build shared instead of static library" OFF)  option(BUILD_TESTS "Build tests" OFF) +option(BUILD_PKGCONFIG "Build PKGCONFIG file" OFF) +option(BUILD_USEOWNSUBDIR "Use a separate directory to install include and lib files" OFF) +  set(BUILD_DEFINES "" CACHE STRING "Build defines")  if(MSVC) @@ -25,11 +28,6 @@ endif()  include(GNUInstallDirs)  mark_as_advanced(CLEAR CMAKE_INSTALL_LIBDIR CMAKE_INSTALL_INCLUDEDIR) -set(INSTALL_BIN_DIR "bin" CACHE PATH "Installation directory for executables") -set(INSTALL_LIB_DIR "lib" CACHE PATH "Installation directory for libraries") -set(INSTALL_INCLUDE_DIR "include" CACHE PATH "Installation directory for header files") -set(INSTALL_PKGCONFIG_DIR "lib/pkgconfig" CACHE PATH "Installation directory for pkg-config file") -  set(HEADERS src/pugixml.hpp src/pugiconfig.hpp)  set(SOURCES ${HEADERS} src/pugixml.cpp) @@ -53,21 +51,44 @@ endif()  set_target_properties(pugixml PROPERTIES VERSION 1.7 SOVERSION 1)  get_target_property(PUGIXML_VERSION_STRING pugixml VERSION) -# Install shared library into its own directory under LIBDIR -install(TARGETS pugixml EXPORT pugixml-config -	ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/pugixml-${PUGIXML_VERSION_STRING} -	LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/pugixml-${PUGIXML_VERSION_STRING} -	RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} -) +set(INSTALL_BIN_DIR "bin" CACHE PATH "Installation directory for executables") +if(BUILD_USEOWNSUBDIR) +	set(INSTALL_LIB_DIR "lib/pugixml-${PUGIXML_VERSION_STRING}" CACHE PATH "Installation directory for libraries") +	set(INSTALL_INCLUDE_DIR "include/pugixml-${PUGIXML_VERSION_STRING}" CACHE PATH "Installation directory for header files") +else() +	set(INSTALL_LIB_DIR "lib" CACHE PATH "Installation directory for libraries") +	set(INSTALL_INCLUDE_DIR "include" CACHE PATH "Installation directory for header files") +endif() + +set(INSTALL_PKGCONFIG_DIR "lib/pkgconfig" CACHE PATH "Installation directory for pkg-config file") + +if(BUILD_USEOWNSUBDIR) +	# Install shared library into its own directory under LIBDIR +	install(TARGETS pugixml EXPORT pugixml-config +		ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/pugixml-${PUGIXML_VERSION_STRING} +		LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/pugixml-${PUGIXML_VERSION_STRING} +		RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}		 +	) + +	# Install header files into their own directory under INCLUDEDIR +	install(FILES ${HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/pugixml-${PUGIXML_VERSION_STRING}) +else() +	# Install shared library into default LIBDIR directory +	install(TARGETS pugixml EXPORT pugixml-config +		ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} +		LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} +		RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}		 +	) + +	# Install header files into default INCLUDEDIR directory  +	install(FILES ${HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) +endif() -# Install header files into their own directory under INCLUDEDIR -install(FILES ${HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/pugixml-${PUGIXML_VERSION_STRING})  install(EXPORT pugixml-config DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/pugixml) -if(BUILD_SHARED_LIBS) +if(BUILD_SHARED_LIBS AND BUILD_PKGCONFIG)  	###############################################################################  	# prepare pkg-config file -  	configure_file(misc/cmake/pugixml.pc  	"${PROJECT_BINARY_DIR}/pugixml.pc" @ONLY) diff --git a/misc/cmake/pugixml.pc b/misc/cmake/pugixml.pc index f9fe479..283c9a7 100644 --- a/misc/cmake/pugixml.pc +++ b/misc/cmake/pugixml.pc @@ -7,5 +7,5 @@ Name: pugixml  Description: Light-weight, simple and fast XML parser for C++ with XPath support.  URL: http://pugixml.org/  Version: @PUGIXML_VERSION_STRING@ -Cflags: -I${includedir}/pugixml-@PUGIXML_VERSION_STRING@ -Libs: -L${libdir}/pugixml-@PUGIXML_VERSION_STRING@ -lpugixml
\ No newline at end of file +Cflags: -I${includedir} +Libs: -L${libdir} -lpugixml
\ No newline at end of file | 
