cmake_minimum_required (VERSION 3.9)
project (alac)

set(HEADERS
  codec/EndianPortable.h
  codec/aglib.h
  codec/ALACAudioTypes.h
  codec/ALACBitUtilities.h
  codec/ALACDecoder.h
  codec/ALACEncoder.h
  codec/dplib.h
  codec/matrixlib.h
)


set (SRCS
  codec/EndianPortable.c
  codec/ALACBitUtilities.c
  codec/ALACDecoder.cpp
  codec/ALACEncoder.cpp
  codec/ag_dec.c
  codec/ag_enc.c
  codec/dp_dec.c
  codec/dp_enc.c
  codec/matrix_dec.c
  codec/matrix_enc.c
)

set(EXE_SRCS
  convert-utility/main.cpp
  convert-utility/CAFFileALAC.cpp
)

if(MSVC)
  add_compile_options(/W4 -D_CRT_SECURE_NO_WARNINGS -DTARGET_OS_WIN32)
endif()

if(BUILD_SHARED_LIBS)
  set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
endif()

include_directories(. codec convert-utility)

add_library(libalac ${SRCS})

add_executable(alacconvert ${EXE_SRCS})
target_link_libraries(alacconvert libalac)

install(
  TARGETS libalac
  RUNTIME DESTINATION bin
  LIBRARY DESTINATION lib
  ARCHIVE DESTINATION lib
)

if(NOT DISABLE_INSTALL_TOOLS)
  install (
    TARGETS alacconvert
    RUNTIME DESTINATION tools/alac
  )
endif()

if(NOT DISABLE_INSTALL_HEADERS)
  install(FILES ${HEADERS} DESTINATION include/alac)
endif()
