diff --git a/CMakeLists.txt b/CMakeLists.txt index 1adc963..2d3d132 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -26,7 +26,7 @@ RETURN() ENDIF() -cmake_minimum_required(VERSION 2.8.12) +cmake_minimum_required(VERSION 3.1) project(cxxopts) enable_testing() @@ -37,9 +37,7 @@ option(CXXOPTS_BUILD_EXAMPLES "Set to ON to build examples" ON) option(CXXOPTS_BUILD_TESTS "Set to ON to build tests" OFF) set(CXXOPTS_LINKER_LIBRARIES "") - set(CXXOPTS_USE_UNICODE_HELP FALSE CACHE BOOL "Use ICU Unicode library") - if(CXXOPTS_USE_UNICODE_HELP) find_package(PkgConfig) @@ -48,8 +46,23 @@ if(CXXOPTS_USE_UNICODE_HELP) set(CXXOPTS_LINKER_LIBRARIES "${ICU_LDFLAGS}") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${ICU_CFLAGS} -DCXXOPTS_USE_UNICODE") - endif() +add_library(cxxopts INTERFACE) +target_sources( + cxxopts INTERFACE + ${CMAKE_CURRENT_SOURCE_DIR}/include/cxxopts.hpp + ) +target_include_directories( + cxxopts INTERFACE + include/ + ) +target_link_libraries( + cxxopts + INTERFACE ${CXXOPTS_LINKER_LIBRARIES} + ) + +install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/include/cxxopts.hpp DESTINATION include) + add_subdirectory(src) add_subdirectory(test) diff --git a/src/cxxopts.hpp b/include/cxxopts.hpp similarity index 100% rename from src/cxxopts.hpp rename to include/cxxopts.hpp diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index fd21e5d..9a79b08 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -19,9 +19,8 @@ # THE SOFTWARE. if(CXXOPTS_BUILD_EXAMPLES) - add_executable(example example.cpp cxxopts.hpp) - - target_link_libraries(example ${CXXOPTS_LINKER_LIBRARIES}) + add_executable(example example.cpp) + target_link_libraries(example cxxopts) if (MSVC) target_compile_options(example PUBLIC /W2) @@ -29,5 +28,3 @@ if(CXXOPTS_BUILD_EXAMPLES) target_compile_options(example PUBLIC -std=c++11 -Wall) endif() endif() - -install(FILES cxxopts.hpp DESTINATION include) diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 4378e2a..19aa960 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -1,7 +1,6 @@ if (CXXOPTS_BUILD_TESTS) add_executable(options_test options.cpp) - - target_link_libraries(options_test ${CXXOPTS_LINKER_LIBRARIES}) + target_link_libraries(options_test cxxopts) if (MSVC) target_compile_options(options_test PUBLIC /W2) diff --git a/test/options.cpp b/test/options.cpp index c15f6a3..76fad97 100644 --- a/test/options.cpp +++ b/test/options.cpp @@ -3,7 +3,7 @@ #include -#include "../src/cxxopts.hpp" +#include "cxxopts.hpp" class Argv { public: