From 806c75652aa953f1eacb233330b0450a5d1a7e02 Mon Sep 17 00:00:00 2001 From: Jippe Holwerda Date: Thu, 25 Feb 2016 19:30:03 +0100 Subject: Put CMakeLists.txt in the project root. Having CMakeLists.txt in the project root makes it so much easier to use pugixml as an external dependency in another CMake project. --- CMakeLists.txt | 67 ++++++++++++++++++++++++++++++++++++++++++++++++++ scripts/CMakeLists.txt | 67 -------------------------------------------------- 2 files changed, 67 insertions(+), 67 deletions(-) create mode 100644 CMakeLists.txt delete mode 100644 scripts/CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..bb16870 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,67 @@ +project(pugixml) + +cmake_minimum_required(VERSION 2.6) + +option(BUILD_SHARED_LIBS "Build shared instead of static library" OFF) +option(BUILD_TESTS "Build tests" OFF) +set(BUILD_DEFINES "" CACHE STRING "Build defines") + +if(MSVC) + option(STATIC_CRT "Use static CRT libraries" OFF) + + # Rewrite command line flags to use /MT if necessary + if(STATIC_CRT) + foreach(flag_var + CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE + CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO) + if(${flag_var} MATCHES "/MD") + string(REGEX REPLACE "/MD" "/MT" ${flag_var} "${${flag_var}}") + endif(${flag_var} MATCHES "/MD") + endforeach(flag_var) + endif() +endif() + +# Pre-defines standard install locations on *nix systems. +include(GNUInstallDirs) +mark_as_advanced(CLEAR CMAKE_INSTALL_LIBDIR CMAKE_INSTALL_INCLUDEDIR) + +set(HEADERS ../src/pugixml.hpp ../src/pugiconfig.hpp) +set(SOURCES ${HEADERS} ../src/pugixml.cpp) + +if(DEFINED BUILD_DEFINES) + foreach(DEFINE ${BUILD_DEFINES}) + add_definitions("-D" ${DEFINE}) + endforeach() +endif() + +if(BUILD_SHARED_LIBS) + add_library(pugixml SHARED ${SOURCES}) +else() + add_library(pugixml STATIC ${SOURCES}) +endif() + +# Enable C++11 long long for compilers that are capable of it +if(NOT ${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} STRLESS 3.1) + target_compile_features(pugixml PUBLIC cxx_long_long_type) +endif() + +set_target_properties(pugixml PROPERTIES VERSION 1.7 SOVERSION 1) + +install(TARGETS pugixml EXPORT pugixml-config + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} +) + +install(FILES ${HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) +install(EXPORT pugixml-config DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/pugixml) + +if(BUILD_TESTS) + file(GLOB TEST_SOURCES ../tests/*.cpp) + file(GLOB FUZZ_SOURCES ../tests/fuzz_*.cpp) + list(REMOVE_ITEM TEST_SOURCES ${FUZZ_SOURCES}) + + add_executable(check ${TEST_SOURCES}) + target_link_libraries(check pugixml) + add_custom_command(TARGET check POST_BUILD COMMAND check WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/..) +endif() \ No newline at end of file diff --git a/scripts/CMakeLists.txt b/scripts/CMakeLists.txt deleted file mode 100644 index bb16870..0000000 --- a/scripts/CMakeLists.txt +++ /dev/null @@ -1,67 +0,0 @@ -project(pugixml) - -cmake_minimum_required(VERSION 2.6) - -option(BUILD_SHARED_LIBS "Build shared instead of static library" OFF) -option(BUILD_TESTS "Build tests" OFF) -set(BUILD_DEFINES "" CACHE STRING "Build defines") - -if(MSVC) - option(STATIC_CRT "Use static CRT libraries" OFF) - - # Rewrite command line flags to use /MT if necessary - if(STATIC_CRT) - foreach(flag_var - CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE - CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO) - if(${flag_var} MATCHES "/MD") - string(REGEX REPLACE "/MD" "/MT" ${flag_var} "${${flag_var}}") - endif(${flag_var} MATCHES "/MD") - endforeach(flag_var) - endif() -endif() - -# Pre-defines standard install locations on *nix systems. -include(GNUInstallDirs) -mark_as_advanced(CLEAR CMAKE_INSTALL_LIBDIR CMAKE_INSTALL_INCLUDEDIR) - -set(HEADERS ../src/pugixml.hpp ../src/pugiconfig.hpp) -set(SOURCES ${HEADERS} ../src/pugixml.cpp) - -if(DEFINED BUILD_DEFINES) - foreach(DEFINE ${BUILD_DEFINES}) - add_definitions("-D" ${DEFINE}) - endforeach() -endif() - -if(BUILD_SHARED_LIBS) - add_library(pugixml SHARED ${SOURCES}) -else() - add_library(pugixml STATIC ${SOURCES}) -endif() - -# Enable C++11 long long for compilers that are capable of it -if(NOT ${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} STRLESS 3.1) - target_compile_features(pugixml PUBLIC cxx_long_long_type) -endif() - -set_target_properties(pugixml PROPERTIES VERSION 1.7 SOVERSION 1) - -install(TARGETS pugixml EXPORT pugixml-config - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} -) - -install(FILES ${HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) -install(EXPORT pugixml-config DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/pugixml) - -if(BUILD_TESTS) - file(GLOB TEST_SOURCES ../tests/*.cpp) - file(GLOB FUZZ_SOURCES ../tests/fuzz_*.cpp) - list(REMOVE_ITEM TEST_SOURCES ${FUZZ_SOURCES}) - - add_executable(check ${TEST_SOURCES}) - target_link_libraries(check pugixml) - add_custom_command(TARGET check POST_BUILD COMMAND check WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/..) -endif() \ No newline at end of file -- cgit v1.2.3 From 4469a329707c62736e84bf273d8026e19ad184d2 Mon Sep 17 00:00:00 2001 From: Jippe Holwerda Date: Thu, 25 Feb 2016 20:38:07 +0100 Subject: Change paths according to new CMakeLists.txt location. --- CMakeLists.txt | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index bb16870..d33750a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -25,8 +25,8 @@ endif() include(GNUInstallDirs) mark_as_advanced(CLEAR CMAKE_INSTALL_LIBDIR CMAKE_INSTALL_INCLUDEDIR) -set(HEADERS ../src/pugixml.hpp ../src/pugiconfig.hpp) -set(SOURCES ${HEADERS} ../src/pugixml.cpp) +set(HEADERS src/pugixml.hpp src/pugiconfig.hpp) +set(SOURCES ${HEADERS} src/pugixml.cpp) if(DEFINED BUILD_DEFINES) foreach(DEFINE ${BUILD_DEFINES}) @@ -57,11 +57,11 @@ install(FILES ${HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) install(EXPORT pugixml-config DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/pugixml) if(BUILD_TESTS) - file(GLOB TEST_SOURCES ../tests/*.cpp) - file(GLOB FUZZ_SOURCES ../tests/fuzz_*.cpp) + file(GLOB TEST_SOURCES tests/*.cpp) + file(GLOB FUZZ_SOURCES tests/fuzz_*.cpp) list(REMOVE_ITEM TEST_SOURCES ${FUZZ_SOURCES}) add_executable(check ${TEST_SOURCES}) target_link_libraries(check pugixml) - add_custom_command(TARGET check POST_BUILD COMMAND check WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/..) + add_custom_command(TARGET check POST_BUILD COMMAND check WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}) endif() \ No newline at end of file -- cgit v1.2.3