diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..ab5b2d9 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,55 @@ +cmake_minimum_required(VERSION 3.8) + +set(VERSION 3.2) + +project( + mxml + VERSION ${VERSION} + LANGUAGES C) + +set(SOURCES + mxml-attr.c + mxml-entity.c + mxml-file.c + mxml-get.c + mxml-index.c + mxml-node.c + mxml-private.c + mxml-search.c + mxml-set.c + mxml-string.c) + +set(HEADERS mxml-private.h) + +configure_file(config.h.in config.h) + +add_library(${PROJECT_NAME} ${SOURCES} ${HEADERS}) +target_include_directories( + ${PROJECT_NAME} PUBLIC $ + $) +add_library(MSweet::${PROJECT_NAME} ALIAS ${PROJECT_NAME}) + +# install library +install( + TARGETS ${PROJECT_NAME} + EXPORT ${PROJECT_NAME}Targets + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib + RUNTIME DESTINATION bin + INCLUDES + DESTINATION include) + +install( + EXPORT ${PROJECT_NAME}Targets + DESTINATION lib/cmake/${PROJECT_NAME} + FILE ${PROJECT_NAME}Targets.cmake + NAMESPACE MSweet::) + +install(FILES mxml.h DESTINATION include) + +include(CMakePackageConfigHelpers) +write_basic_package_version_file(${PROJECT_NAME}ConfigVersion.cmake + COMPATIBILITY SameMajorVersion) +install(FILES ${PROJECT_NAME}Config.cmake + ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake + DESTINATION lib/cmake/${PROJECT_NAME}) diff --git a/mxmlConfig.cmake b/mxmlConfig.cmake new file mode 100644 index 0000000..7c78a22 --- /dev/null +++ b/mxmlConfig.cmake @@ -0,0 +1,2 @@ +include(CMakeFindDependencyMacro) +include("${CMAKE_CURRENT_LIST_DIR}/mxmlTargets.cmake")