xref: /aosp_15_r20/external/flac/src/libFLAC++/CMakeLists.txt (revision 600f14f40d737144c998e2ec7a483122d3776fbc)
1*600f14f4SXin Liadd_library(FLAC++
2*600f14f4SXin Li    metadata.cpp
3*600f14f4SXin Li    stream_decoder.cpp
4*600f14f4SXin Li    stream_encoder.cpp
5*600f14f4SXin Li	version.rc)
6*600f14f4SXin Liset_property(TARGET FLAC++ PROPERTY PROJECT_LABEL "libFLAC++")
7*600f14f4SXin Litarget_compile_definitions(FLAC++
8*600f14f4SXin Li    PRIVATE $<$<BOOL:${BUILD_SHARED_LIBS}>:FLACPP_API_EXPORTS>
9*600f14f4SXin Li    PUBLIC $<$<NOT:$<BOOL:${BUILD_SHARED_LIBS}>>:FLAC__NO_DLL>)
10*600f14f4SXin Liif(NOT WIN32)
11*600f14f4SXin Li    target_compile_definitions(FLAC++ PRIVATE $<$<BOOL:${BUILD_SHARED_LIBS}>:FLAC__USE_VISIBILITY_ATTR>)
12*600f14f4SXin Liendif()
13*600f14f4SXin Litarget_include_directories(FLAC++ INTERFACE
14*600f14f4SXin Li    "$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>"
15*600f14f4SXin Li    "$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>")
16*600f14f4SXin Litarget_link_libraries(FLAC++ PUBLIC FLAC)
17*600f14f4SXin Liif(BUILD_SHARED_LIBS)
18*600f14f4SXin Li    set_target_properties(FLAC++ PROPERTIES
19*600f14f4SXin Li        VERSION 10.0.1
20*600f14f4SXin Li        SOVERSION 10)
21*600f14f4SXin Li    if(NOT WIN32)
22*600f14f4SXin Li        set_target_properties(FLAC++ PROPERTIES CXX_VISIBILITY_PRESET hidden)
23*600f14f4SXin Li    endif()
24*600f14f4SXin Liendif()
25*600f14f4SXin Li
26*600f14f4SXin Liadd_library(FLAC::FLAC++ ALIAS FLAC++)
27*600f14f4SXin Li
28*600f14f4SXin Liinstall(TARGETS FLAC++ EXPORT targets
29*600f14f4SXin Li    ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}/"
30*600f14f4SXin Li    LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}/"
31*600f14f4SXin Li    RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}/")
32*600f14f4SXin Li
33*600f14f4SXin Liif(INSTALL_PKGCONFIG_MODULES)
34*600f14f4SXin Li    set(prefix "${CMAKE_INSTALL_PREFIX}")
35*600f14f4SXin Li    set(exec_prefix "${CMAKE_INSTALL_PREFIX}")
36*600f14f4SXin Li    set(libdir "${CMAKE_INSTALL_FULL_LIBDIR}")
37*600f14f4SXin Li    set(includedir "${CMAKE_INSTALL_FULL_INCLUDEDIR}")
38*600f14f4SXin Li    configure_file(flac++.pc.in flac++.pc @ONLY)
39*600f14f4SXin Li    install(FILES "${CMAKE_CURRENT_BINARY_DIR}/flac++.pc"
40*600f14f4SXin Li        DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
41*600f14f4SXin Liendif()
42