diff --git a/CMakeLists.txt b/CMakeLists.txt index a85e348..6c04f72 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -8,8 +8,6 @@ project( ) option(SIMPLEINI_USE_SYSTEM_GTEST "Use system GoogleTest dependency" OFF) -option(SIMPLEINI_BUILD_TESTS "Build tests" ON) -option(SIMPLEINI_BUILD_EXAMPLES "Build examples" ON) # disable in-source builds if(CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR) @@ -17,14 +15,10 @@ if(CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR) endif() set(EXPORT_NAMESPACE "${PROJECT_NAME}::") -set(SIMPLEINI_HEADERS SimpleIni.h) - -# ConvertUTF files are only needed on Windows for SI_CONVERT_WIN32 -if(WIN32) - list(APPEND SIMPLEINI_HEADERS ConvertUTF.h) - set(SIMPLEINI_SOURCES ConvertUTF.c) -endif() +# SimpleIni is a header-only library. The ConvertUTF.c/h files in this repository +# are only required if users define SI_CONVERT_GENERIC. In that case, users must +# manually copy and compile ConvertUTF.c into their own projects. add_library(${PROJECT_NAME} INTERFACE) add_library(${EXPORT_NAMESPACE}${PROJECT_NAME} ALIAS ${PROJECT_NAME}) target_include_directories(${PROJECT_NAME} INTERFACE @@ -32,14 +26,6 @@ target_include_directories(${PROJECT_NAME} INTERFACE $ ) -# On Windows, add ConvertUTF.c as a source file -if(WIN32) - target_sources(${PROJECT_NAME} INTERFACE - $ - $ - ) -endif() - include(GNUInstallDirs) include(CMakePackageConfigHelpers) @@ -49,28 +35,21 @@ write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Conf ) configure_package_config_file(${PROJECT_NAME}Config.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake - INSTALL_DESTINATION ${CMAKE_INSTALL_DATADIR}/cmake/${PROJECT_NAME} + INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME} ) -install(FILES ${SIMPLEINI_HEADERS} +install(FILES SimpleIni.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} ) -# Install ConvertUTF.c on Windows (needed for SI_CONVERT_WIN32) -if(WIN32) - install(FILES ConvertUTF.c - DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} - ) -endif() - install(TARGETS ${PROJECT_NAME} EXPORT SimpleIniTargets ) install(EXPORT SimpleIniTargets FILE SimpleIniTargets.cmake - NAMESPACE SimpleIni:: - DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/SimpleIni + NAMESPACE ${EXPORT_NAMESPACE} + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME} ) install(FILES @@ -79,8 +58,8 @@ install(FILES DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME} ) -# only build tests when top level and testing enabled -if(CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME AND SIMPLEINI_BUILD_TESTS) +# only build tests when top level +if(CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME) include(CTest) if(BUILD_TESTING) add_subdirectory(tests)