blob: ec27835c78fd8249c96074a5eb86d315f14a2b2e [file] [log] [blame]
check_cxx_source_compiles("
#ifdef __STDC_NO_VLA__
syntax error;
#else
int fvla (int m, int * c)
{
int D[m];
return D[0] == c[0];
}
int main(int, char * []) { return 0; }
#endif"
HAVE_CXX_VARARRAYS)
add_library(FLAC++
metadata.cpp
stream_decoder.cpp
stream_encoder.cpp)
target_compile_definitions(FLAC++
PRIVATE $<$<BOOL:${BUILD_SHARED_LIBS}>:FLACPP_API_EXPORTS>
PUBLIC $<$<NOT:$<BOOL:${BUILD_SHARED_LIBS}>>:FLAC__NO_DLL>)
if(NOT WIN32)
target_compile_definitions(FLAC++ PRIVATE $<$<BOOL:${BUILD_SHARED_LIBS}>:FLAC__USE_VISIBILITY_ATTR>)
endif()
target_include_directories(FLAC++ INTERFACE
"$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>"
"$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>")
target_link_libraries(FLAC++ PUBLIC FLAC)
if(BUILD_SHARED_LIBS)
set_target_properties(FLAC++ PROPERTIES
VERSION 6.3.0
SOVERSION 6)
if(NOT WIN32)
set_target_properties(FLAC++ PROPERTIES CXX_VISIBILITY_PRESET hidden)
endif()
endif()
add_library(FLAC::FLAC++ ALIAS FLAC++)
install(TARGETS FLAC++ EXPORT targets
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}/"
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}/"
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}/")
if(INSTALL_PKGCONFIG_MODULES)
set(prefix "${CMAKE_INSTALL_PREFIX}")
set(exec_prefix "${CMAKE_INSTALL_PREFIX}")
set(libdir "${CMAKE_INSTALL_FULL_LIBDIR}")
set(includedir "${CMAKE_INSTALL_FULL_INCLUDEDIR}")
configure_file(flac++.pc.in flac++.pc @ONLY)
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/flac++.pc"
DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
endif()