Skip to content

Commit 47a832f

Browse files
Update cmake install to avoid conflict with include files
1 parent a4849cb commit 47a832f

4 files changed

Lines changed: 10 additions & 9 deletions

File tree

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ Once cmake has generated the makefiles, you can use a GNU Make to build.
159159

160160
### How to install as a cmake package
161161

162-
CMSIS-DSP can be installed as a cmake package for host builds on Windows, macOS, or Linux. Set `CMAKE_INSTALL_PREFIX` to the folder where the package must be installed. The installed package exports the target `CMSISDSP::CMSISDSP`. Package installation is disabled when `CMSISCORE` is set, since `CMSISCORE` is used for Cortex-M builds normally handled by CMSIS Toolbox or Zephyr.
162+
CMSIS-DSP can be installed as a cmake package for host builds on Windows, macOS, or Linux. Set `CMAKE_INSTALL_PREFIX` to the folder where the package must be installed. The installed package exports the target `CMSISDSP::CMSISDSP`. Headers are installed below `include/CMSIS-DSP` to avoid conflicts with other packages, but applications still include CMSIS-DSP headers with `#include "arm_math.h"` when linking with `CMSISDSP::CMSISDSP`. Package installation is disabled when `CMSISCORE` is set, since `CMSISCORE` is used for Cortex-M builds normally handled by CMSIS Toolbox or Zephyr.
163163

164164
For maximum performance on an Arm host with Neon, build in `Release`, enable `HOST` and `NEON`, and use `-O3 -ffast-math`:
165165

Source/CMakeLists.txt

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ else()
2929
set(CMSISDSP_INSTALL_DEFAULT ON)
3030
endif()
3131
option(CMSISDSP_INSTALL "Install CMSIS-DSP and export a CMake package" ${CMSISDSP_INSTALL_DEFAULT})
32+
set(CMSISDSP_INSTALL_INCLUDEDIR "${CMAKE_INSTALL_INCLUDEDIR}/CMSIS-DSP"
33+
CACHE STRING "CMSIS-DSP headers install directory")
3234

3335
###########################
3436
#
@@ -74,7 +76,7 @@ include(WindowFunctions/Config.cmake)
7476
### Includes
7577
target_include_directories(CMSISDSP PUBLIC
7678
$<BUILD_INTERFACE:${DSP}/Include>
77-
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
79+
$<INSTALL_INTERFACE:${CMSISDSP_INSTALL_INCLUDEDIR}>)
7880
if (DEFINED CMSISCORE)
7981
target_include_directories(CMSISDSP PUBLIC
8082
$<BUILD_INTERFACE:${CMSISCORE}/Include>)
@@ -96,16 +98,15 @@ if (CMSISDSP_INSTALL)
9698
EXPORT CMSISDSPTargets
9799
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
98100
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
99-
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
100-
INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
101+
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
101102

102103
install(DIRECTORY "${DSP}/Include/"
103-
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
104+
DESTINATION ${CMSISDSP_INSTALL_INCLUDEDIR}
104105
FILES_MATCHING PATTERN "*.h")
105106

106107
if (NEON OR NEONEXPERIMENTAL)
107108
install(DIRECTORY "${DSP}/ComputeLibrary/Include/"
108-
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
109+
DESTINATION ${CMSISDSP_INSTALL_INCLUDEDIR}
109110
FILES_MATCHING PATTERN "*.h")
110111
endif()
111112

Source/configDsp.cmake

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ if (NEON)
2424
# Used in arm_vec_math.h
2525
target_include_directories(${project} PUBLIC
2626
$<BUILD_INTERFACE:${DSP}/ComputeLibrary/Include>
27-
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
27+
$<INSTALL_INTERFACE:${CMSISDSP_INSTALL_INCLUDEDIR}>)
2828
target_include_directories(${project} PRIVATE "${DSP}/Ne10")
2929
target_compile_definitions(${project} PUBLIC ARM_MATH_NEON)
3030

@@ -34,7 +34,7 @@ if (NEONEXPERIMENTAL)
3434
# Used in arm_vec_math.h
3535
target_include_directories(${project} PUBLIC
3636
$<BUILD_INTERFACE:${DSP}/ComputeLibrary/Include>
37-
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
37+
$<INSTALL_INTERFACE:${CMSISDSP_INSTALL_INCLUDEDIR}>)
3838
target_include_directories(${project} PRIVATE "${DSP}/Ne10")
3939
target_compile_definitions(${project} PUBLIC ARM_MATH_NEON_EXPERIMENTAL)
4040
endif()

cmake/CMSISDSPConfig.cmake.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@
33
include("${CMAKE_CURRENT_LIST_DIR}/CMSISDSPTargets.cmake")
44

55
set(CMSISDSP_LIBRARIES CMSISDSP::CMSISDSP)
6-
set(CMSISDSP_INCLUDE_DIRS "${PACKAGE_PREFIX_DIR}/@CMAKE_INSTALL_INCLUDEDIR@")
6+
set(CMSISDSP_INCLUDE_DIRS "${PACKAGE_PREFIX_DIR}/@CMSISDSP_INSTALL_INCLUDEDIR@")

0 commit comments

Comments
 (0)