diff options
author | Vitaliy Kirsanov <krokoziabla@yandex-team.ru> | 2019-03-31 23:04:45 +0300 |
---|---|---|
committer | Erik de Castro Lopo <erikd@mega-nerd.com> | 2019-05-04 11:41:48 +1000 |
commit | c39718d7a36405114f9ed0b1a7acaef64ea88131 (patch) | |
tree | 3d3633d0af41f00ccb6f0ec4dc48f9b018d5ff7c /src/libFLAC++/CMakeLists.txt | |
parent | 12ec86c6188aef9ebd4b9bd0393eab7326e185fc (diff) | |
download | flac-c39718d7a36405114f9ed0b1a7acaef64ea88131.tar.gz |
CMake support added
Diffstat (limited to 'src/libFLAC++/CMakeLists.txt')
-rw-r--r-- | src/libFLAC++/CMakeLists.txt | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/src/libFLAC++/CMakeLists.txt b/src/libFLAC++/CMakeLists.txt new file mode 100644 index 00000000..83031420 --- /dev/null +++ b/src/libFLAC++/CMakeLists.txt @@ -0,0 +1,48 @@ +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) + +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_compile_definitions($<$<BOOL:${HAVE_CXX_VARARRAYS}>:HAVE_CXX_VARARRAYS>) + +set(SOURCES + metadata.cpp + stream_decoder.cpp + stream_encoder.cpp) + +add_library(FLACXX-static STATIC ${SOURCES}) +target_compile_definitions(FLACXX-static PUBLIC FLAC__NO_DLL) +target_include_directories(FLACXX-static INTERFACE + "$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>" + "$<INSTALL_INTERFACE:${CMAKE_INSTALL_PREFIX}/include>") +target_link_libraries(FLACXX-static PUBLIC FLAC-static) + +add_library(FLACXX SHARED ${SOURCES}) +target_compile_definitions(FLACXX PRIVATE FLACPP_API_EXPORTS FLAC__USE_VISIBILITY_ATTR) +target_include_directories(FLACXX INTERFACE + "$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>" + "$<INSTALL_INTERFACE:${CMAKE_INSTALL_PREFIX}/include>") +target_link_libraries(FLACXX PRIVATE FLAC) +set_target_properties(FLACXX PROPERTIES CXX_VISIBILITY_PRESET hidden) + +install(TARGETS FLACXX FLACXX-static EXPORT targets + ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}/" + LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}/" + RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}/") +install(FILES "${CMAKE_CURRENT_BINARY_DIR}/flac++.pc" + DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/pkgconfig") |