Use cmake interface library

This commit is contained in:
Mario Badr 2016-11-29 11:40:47 -05:00
parent 2b8788f336
commit f4b2e15649
6 changed files with 16 additions and 9 deletions

View File

@ -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,17 @@ if(CXXOPTS_USE_UNICODE_HELP)
set(CXXOPTS_LINKER_LIBRARIES "${ICU_LIBRARIES}")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DCXXOPTS_USE_UNICODE")
endif()
add_library(cxxopts INTERFACE)
target_sources(
cxxopts INTERFACE
${CMAKE_SOURCE_DIR}/include/cxxopts/cxxopts.hpp
)
target_include_directories(
cxxopts INTERFACE
${CMAKE_SOURCE_DIR}/include
)
add_subdirectory(src)
add_subdirectory(test)

View File

@ -19,7 +19,8 @@
# THE SOFTWARE.
if(CXXOPTS_BUILD_EXAMPLES)
add_executable(example example.cpp cxxopts.hpp)
add_executable(example example.cpp)
target_link_libraries(example PRIVATE cxxopts)
target_link_libraries(example ${CXXOPTS_LINKER_LIBRARIES})
@ -29,5 +30,3 @@ if(CXXOPTS_BUILD_EXAMPLES)
target_compile_options(example PUBLIC -std=c++11 -Wall)
endif()
endif()
install(FILES cxxopts.hpp DESTINATION include)

View File

@ -24,7 +24,7 @@ THE SOFTWARE.
#include <iostream>
#include "cxxopts.hpp"
#include "cxxopts/cxxopts.hpp"
int main(int argc, char* argv[])
{

View File

@ -1,5 +1,6 @@
if (CXXOPTS_BUILD_TESTS)
add_executable(options_test options.cpp)
target_link_libraries(options_test PRIVATE cxxopts)
target_link_libraries(options_test ${CXXOPTS_LINKER_LIBRARIES})

View File

@ -3,7 +3,7 @@
#include <initializer_list>
#include "../src/cxxopts.hpp"
#include "cxxopts/cxxopts.hpp"
class Argv {
public: