• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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