cmake_minimum_required(VERSION 3.6)

project(tables_format_converter)

if(WIN32)
  # MSVC compiler flags
  add_definitions(
    -D_CRT_SECURE_NO_WARNINGS
  )

  # CMake sets /W3 by default, until CMake version 3.15. Instead of setting /W4 separately, replace in existing settings
  string(REGEX REPLACE "/W3" "/W4" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
endif()

set(IVAS_PATH "${PROJECT_SOURCE_DIR}/../../..")
set(IVAS_UTIL_PATH ${IVAS_PATH}/lib_util)
set(IVAS_DEC_PATH ${IVAS_PATH}/lib_dec)
set(IVAS_ENC_PATH ${IVAS_PATH}/lib_enc)
set(IVAS_COM_PATH ${IVAS_PATH}/lib_com)
set(IVAS_REND_PATH ${IVAS_PATH}/lib_rend)
set(IVAS_DEBUG_PATH ${IVAS_PATH}/lib_debug)
set(IVAS_LC3PLUS_PATH ${IVAS_PATH}/lib_lc3plus)
set(IVAS_ISAR_PATH ${IVAS_PATH}/lib_isar)

include_directories(${IVAS_UTIL_PATH} ${IVAS_ENC_PATH} ${IVAS_DEC_PATH} ${IVAS_COM_PATH} ${IVAS_REND_PATH} ${IVAS_DEBUG_PATH} ${IVAS_LC3PLUS_PATH} ${IVAS_ISAR_PATH})

set(SOURCE_FILES_C
  ${IVAS_REND_PATH}/ivas_rom_binauralRenderer.c
  ${IVAS_REND_PATH}/ivas_rom_binaural_crend_head.c
  ${IVAS_REND_PATH}/ivas_rom_rend.c
  ${IVAS_UTIL_PATH}/cmdl_tools.c)

set(SOURCE_FILES_H
  ${IVAS_REND_PATH}/ivas_rom_binauralRenderer.h
  ${IVAS_REND_PATH}/ivas_rom_binaural_crend_head.h
  ${IVAS_REND_PATH}/ivas_rom_rend.h)

add_library(${PROJECT_NAME}_lib STATIC ${SOURCE_FILES_C} ${SOURCE_FILES_H})

add_executable(${PROJECT_NAME} generate_tables_from_rom_to_bin.c)
target_link_libraries(${PROJECT_NAME} ${PROJECT_NAME}_lib)

add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD VERBATIM COMMAND "${CMAKE_COMMAND}" -E copy "$<TARGET_FILE:${PROJECT_NAME}>" "${CMAKE_CURRENT_SOURCE_DIR}/")
