1check_cxx_source_compiles(" 2 #ifdef __STDC_NO_VLA__ 3 syntax error; 4 #else 5 int fvla (int m, int * c) 6 { 7 int D[m]; 8 return D[0] == c[0]; 9 } 10 11 int main(int, char * []) { return 0; } 12 #endif" 13 HAVE_CXX_VARARRAYS) 14 15add_library(FLAC++ 16 metadata.cpp 17 stream_decoder.cpp 18 stream_encoder.cpp) 19target_compile_definitions(FLAC++ 20 PRIVATE $<$<BOOL:${BUILD_SHARED_LIBS}>:FLACPP_API_EXPORTS> 21 PUBLIC $<$<NOT:$<BOOL:${BUILD_SHARED_LIBS}>>:FLAC__NO_DLL>) 22if(NOT WIN32) 23 target_compile_definitions(FLAC++ PRIVATE $<$<BOOL:${BUILD_SHARED_LIBS}>:FLAC__USE_VISIBILITY_ATTR>) 24endif() 25target_include_directories(FLAC++ INTERFACE 26 "$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>" 27 "$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>") 28target_link_libraries(FLAC++ PUBLIC FLAC) 29if(BUILD_SHARED_LIBS) 30 set_target_properties(FLAC++ PROPERTIES 31 VERSION 6.3.0 32 SOVERSION 6) 33 if(NOT WIN32) 34 set_target_properties(FLAC++ PROPERTIES CXX_VISIBILITY_PRESET hidden) 35 endif() 36endif() 37 38add_library(FLAC::FLAC++ ALIAS FLAC++) 39 40install(TARGETS FLAC++ EXPORT targets 41 ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}/" 42 LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}/" 43 RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}/") 44 45if(INSTALL_PKGCONFIG_MODULES) 46 set(prefix "${CMAKE_INSTALL_PREFIX}") 47 set(exec_prefix "${CMAKE_INSTALL_PREFIX}") 48 set(libdir "${CMAKE_INSTALL_FULL_LIBDIR}") 49 set(includedir "${CMAKE_INSTALL_FULL_INCLUDEDIR}") 50 configure_file(flac++.pc.in flac++.pc @ONLY) 51 install(FILES "${CMAKE_CURRENT_BINARY_DIR}/flac++.pc" 52 DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig") 53endif() 54