Skip to content

Commit 1b06a32

Browse files
committed
Add dsplib::interface target
1 parent 3806f06 commit 1b06a32

File tree

3 files changed

+18
-9
lines changed

3 files changed

+18
-9
lines changed

CMakeLists.txt

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
cmake_minimum_required(VERSION 3.10)
2-
project(dsplib LANGUAGES CXX VERSION 0.54.9)
1+
cmake_minimum_required(VERSION 3.15...4.0)
2+
project(dsplib LANGUAGES CXX VERSION 0.55.0)
33

44
set(CMAKE_CXX_STANDARD 17)
55
set(CMAKE_CXX_STANDARD_REQUIRED ON)
@@ -63,14 +63,20 @@ add_library(${PROJECT_NAME} ${DSPLIB_SOURCES})
6363
target_compile_definitions(${PROJECT_NAME} PRIVATE
6464
"DSPLIB_FFT_CACHE_SIZE=${DSPLIB_FFT_CACHE_SIZE}")
6565

66-
target_include_directories(${PROJECT_NAME}
67-
PUBLIC
66+
# add INTERFACE target
67+
add_library(${PROJECT_NAME}-interface INTERFACE)
68+
add_library(${PROJECT_NAME}::interface ALIAS ${PROJECT_NAME}-interface)
69+
70+
target_include_directories(${PROJECT_NAME}-interface
71+
INTERFACE
6872
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>"
6973
"$<BUILD_INTERFACE:${CMAKE_BINARY_DIR}>"
7074
"$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>"
71-
PRIVATE lib
7275
)
7376

77+
target_link_libraries(${PROJECT_NAME} PUBLIC ${PROJECT_NAME}-interface)
78+
target_include_directories(${PROJECT_NAME} PRIVATE lib)
79+
7480
# check root project
7581
if("${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_LIST_DIR}")
7682
set(DSPLIB_IS_ROOT ON)

cmake/sanitizer.cmake

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,14 @@ function(enable_address_sanitizer)
1717
target_compile_options(${Sanitizer_TARGET} PRIVATE -fno-sanitize=signed-integer-overflow)
1818
target_compile_options(${Sanitizer_TARGET} PRIVATE -fno-sanitize-recover=all)
1919
target_compile_options(${Sanitizer_TARGET} PRIVATE -fno-omit-frame-pointer)
20-
target_link_libraries(${Sanitizer_TARGET} -fsanitize=address,undefined)
20+
target_link_libraries(${Sanitizer_TARGET} PRIVATE -fsanitize=address,undefined)
2121

2222
if(DEFINED Sanitizer_BLACKLIST)
2323
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU")
2424
message(WARNING "gcc does`t support blacklist")
2525
return()
2626
endif()
2727
target_compile_options(${Sanitizer_TARGET} PRIVATE -fsanitize-blacklist=${Sanitizer_BLACKLIST})
28-
target_link_libraries(${Sanitizer_TARGET} -fsanitize-blacklist=${Sanitizer_BLACKLIST})
28+
target_link_libraries(${Sanitizer_TARGET} PRIVATE -fsanitize-blacklist=${Sanitizer_BLACKLIST})
2929
endif()
3030
endfunction()

examples/fftw-backend/CMakeLists.txt

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,11 @@ set(CMAKE_CXX_STANDARD 17)
55
set(CMAKE_CXX_STANDARD_REQUIRED ON)
66

77
add_library(dsplib-fftw fft.cpp)
8-
target_link_libraries(dsplib-fftw PUBLIC dsplib FFTW:Double)
8+
target_link_libraries(dsplib-fftw PUBLIC dsplib::interface FFTW:Double)
9+
10+
cmake_policy(SET CMP0079 NEW)
11+
target_link_libraries(dsplib PRIVATE dsplib-fftw)
912

1013
add_executable(${PROJECT_NAME} main.cpp)
1114
target_include_directories(${PROJECT_NAME} PUBLIC ${CMAKE_CURRENT_LIST_DIR})
12-
target_link_libraries(${PROJECT_NAME} PUBLIC dsplib dsplib-fftw)
15+
target_link_libraries(${PROJECT_NAME} PUBLIC dsplib)

0 commit comments

Comments
 (0)