Simplified logic of parsing sizes of rice-partitions
[flac.git] / src / libFLAC++ / CMakeLists.txt
blobec27835c78fd8249c96074a5eb86d315f14a2b2e
1 check_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     }
11     int main(int, char * []) { return 0; }
12     #endif"
13     HAVE_CXX_VARARRAYS)
15 add_library(FLAC++
16     metadata.cpp
17     stream_decoder.cpp
18     stream_encoder.cpp)
19 target_compile_definitions(FLAC++
20     PRIVATE $<$<BOOL:${BUILD_SHARED_LIBS}>:FLACPP_API_EXPORTS>
21     PUBLIC $<$<NOT:$<BOOL:${BUILD_SHARED_LIBS}>>:FLAC__NO_DLL>)
22 if(NOT WIN32)
23     target_compile_definitions(FLAC++ PRIVATE $<$<BOOL:${BUILD_SHARED_LIBS}>:FLAC__USE_VISIBILITY_ATTR>)
24 endif()
25 target_include_directories(FLAC++ INTERFACE
26     "$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>"
27     "$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>")
28 target_link_libraries(FLAC++ PUBLIC FLAC)
29 if(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()
36 endif()
38 add_library(FLAC::FLAC++ ALIAS FLAC++)
40 install(TARGETS FLAC++ EXPORT targets
41     ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}/"
42     LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}/"
43     RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}/")
45 if(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")
53 endif()