add alias targets with fmt namespace

For the consumer it should not matter if fmt has been added to the
project as subdirectory or via find_package. With the alias targets
the library can be always imported via fmt::fmt.
This commit is contained in:
Mario Werner 2017-05-23 17:01:45 +02:00 committed by Victor Zverovich
parent 746adc5e71
commit ac5484c4e7
2 changed files with 5 additions and 3 deletions

View File

@ -8,6 +8,7 @@ if (HAVE_OPEN)
endif () endif ()
add_library(fmt ${FMT_SOURCES} ${FMT_HEADERS} ../README.rst ../ChangeLog.rst) add_library(fmt ${FMT_SOURCES} ${FMT_HEADERS} ../README.rst ../ChangeLog.rst)
add_library(fmt::fmt ALIAS fmt)
option(FMT_CPPFORMAT "Build cppformat library for backward compatibility." OFF) option(FMT_CPPFORMAT "Build cppformat library for backward compatibility." OFF)
if (FMT_CPPFORMAT) if (FMT_CPPFORMAT)
@ -43,6 +44,7 @@ endif ()
# additionally define a header only library when cmake is new enough # additionally define a header only library when cmake is new enough
if (CMAKE_VERSION VERSION_GREATER 3.1.0 OR CMAKE_VERSION VERSION_EQUAL 3.1.0) if (CMAKE_VERSION VERSION_GREATER 3.1.0 OR CMAKE_VERSION VERSION_EQUAL 3.1.0)
add_library(fmt-header-only INTERFACE) add_library(fmt-header-only INTERFACE)
add_library(fmt::fmt-header-only ALIAS fmt-header-only)
target_compile_definitions(fmt-header-only INTERFACE FMT_HEADER_ONLY=1) target_compile_definitions(fmt-header-only INTERFACE FMT_HEADER_ONLY=1)

View File

@ -5,9 +5,9 @@ project(fmt-test)
add_subdirectory(../.. fmt) add_subdirectory(../.. fmt)
add_executable(library-test "main.cc") add_executable(library-test "main.cc")
target_link_libraries(library-test fmt) target_link_libraries(library-test fmt::fmt)
if (TARGET fmt-header-only) if (TARGET fmt::fmt-header-only)
add_executable(header-only-test "main.cc") add_executable(header-only-test "main.cc")
target_link_libraries(header-only-test fmt-header-only) target_link_libraries(header-only-test fmt::fmt-header-only)
endif () endif ()