11#===============================================================================
22cmake_minimum_required (VERSION 3.12 )
33
4- project ("AudioFile" VERSION 1.1.1
4+ project ("AudioFile" VERSION 1.1.2
55 DESCRIPTION "A simple C++ library for reading and writing audio files."
66 HOMEPAGE_URL "https://github.com/adamstark/AudioFile" )
77
@@ -13,19 +13,15 @@ option (BUILD_TESTS "Build tests" ON)
1313option (BUILD_EXAMPLES "Build examples" ON )
1414
1515#===============================================================================
16- add_library (${PROJECT_NAME } INTERFACE )
16+ set (AUDIOFILE_SOURCES ${CMAKE_CURRENT_SOURCE_DIR } /AudioFile.h)
17+ source_group (TREE ${CMAKE_CURRENT_SOURCE_DIR } FILES ${AUDIOFILE_SOURCES} )
1718
18- #===============================================================================
19- if (MSVC )
20- # needed for M_PI macro
21- add_definitions (-D_USE_MATH_DEFINES )
22- endif ()
19+ add_library (${PROJECT_NAME } INTERFACE ${AUDIOFILE_SOURCES} )
2320
2421#===============================================================================
25- target_include_directories (
26- ${PROJECT_NAME }
27- INTERFACE $<BUILD_INTERFACE :${${PROJECT_NAME } _SOURCE_DIR }>
28- $<INSTALL_INTERFACE :${CMAKE_INSTALL_INCLUDEDIR} >)
22+ target_include_directories (${PROJECT_NAME } INTERFACE
23+ $<BUILD_INTERFACE :${CMAKE_CURRENT_SOURCE_DIR } >
24+ $<INSTALL_INTERFACE :${CMAKE_INSTALL_INCLUDEDIR} >)
2925
3026#===============================================================================
3127target_compile_features (${PROJECT_NAME } INTERFACE cxx_std_17 )
@@ -42,3 +38,48 @@ endif ()
4238
4339#===============================================================================
4440set (CMAKE_SUPPRESS_REGENERATION true )
41+
42+ #===============================================================================
43+ include (CMakePackageConfigHelpers )
44+
45+ install (TARGETS ${PROJECT_NAME }
46+ EXPORT ${PROJECT_NAME } Targets
47+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
48+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
49+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
50+ INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
51+ )
52+
53+ install (FILES ${PROJECT_SOURCE_DIR } /AudioFile.h
54+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} /${PROJECT_NAME }
55+ )
56+
57+ install (EXPORT ${PROJECT_NAME } Targets
58+ FILE ${PROJECT_NAME } Targets .cmake
59+ NAMESPACE ${PROJECT_NAME } ::
60+ DESTINATION ${CMAKE_INSTALL_LIBDIR} /cmake/${PROJECT_NAME }
61+ )
62+
63+ file (WRITE ${PROJECT_BINARY_DIR } /Config.cmake.in
64+ "@PACKAGE_INIT@\n\n include(\"\$ {CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake\" )\n\n check_required_components(@PROJECT_NAME@)\n "
65+ )
66+
67+ configure_package_config_file (
68+ ${PROJECT_BINARY_DIR } /Config.cmake.in
69+ ${PROJECT_BINARY_DIR } /${PROJECT_NAME}Config.cmake
70+ INSTALL_DESTINATION
71+ ${CMAKE_INSTALL_LIBDIR} /cmake/${PROJECT_NAME}
72+ )
73+
74+ write_basic_package_version_file (
75+ ${PROJECT_BINARY_DIR } /${PROJECT_NAME}ConfigVersion.cmake
76+ VERSION ${PROJECT_VERSION }
77+ COMPATIBILITY SameMajorVersion
78+ ARCH_INDEPENDENT
79+ )
80+
81+ install (FILES
82+ ${CMAKE_CURRENT_BINARY_DIR } /${PROJECT_NAME } Config.cmake
83+ ${CMAKE_CURRENT_BINARY_DIR } /${PROJECT_NAME } ConfigVersion.cmake
84+ DESTINATION ${CMAKE_INSTALL_LIBDIR} /cmake/${PROJECT_NAME }
85+ )
0 commit comments