Commit e4e97ac0 authored by Tapani Pihlajakuja's avatar Tapani Pihlajakuja
Browse files

Fix CMake build with split rendering disabled by adding a configuration...

Fix CMake build with split rendering disabled by adding a configuration variable for including code required by split rendering.
parent a4a250ef
Loading
Loading
Loading
Loading
Loading
+51 −21
Original line number Diff line number Diff line
@@ -27,7 +27,8 @@
#        # or build on command line, e.g.:
#        cmake --build . --config Debug
#        cmake --build . --config Release

#
# INCLUDE_SPLIT is not set by default. If split rendering is used, then add -D INCLUDE_SPLIT=1 to the build command

cmake_minimum_required(VERSION 3.1)

@@ -130,7 +131,10 @@ add_library(lib_com ${libComSrcs} ${libComHeaders})
if(UNIX)
  target_link_libraries(lib_com PRIVATE m)
endif()
target_include_directories(lib_com PUBLIC lib_com PRIVATE lib_enc lib_dec lib_rend lib_debug lc3plus)
target_include_directories(lib_com PUBLIC lib_com PRIVATE lib_enc lib_dec lib_rend lib_debug)
if(INCLUDE_SPLIT)
  target_include_directories(lib_com PRIVATE lc3plus)
endif()

file(GLOB libDebugSrcs "lib_debug/*.c")
file(GLOB libDebugHeaders "lib_debug/*.h")
@@ -142,8 +146,12 @@ file(GLOB libEncSrcs "lib_enc/*.c")
file(GLOB libEncHeaders "lib_enc/*.h")
add_library(lib_enc ${libEncSrcs} ${libEncHeaders})
target_link_libraries(lib_enc lib_com lib_debug)
target_include_directories(lib_enc PUBLIC lib_enc PRIVATE lib_dec lib_rend lc3plus)
target_include_directories(lib_enc PUBLIC lib_enc PRIVATE lib_dec lib_rend)
if(INCLUDE_SPLIT)
  target_include_directories(lib_enc PRIVATE lc3plus)
endif()

if(INCLUDE_SPLIT)
  file(GLOB libLC3plusSrcs "lc3plus/*.c")
  file(GLOB libLC3plusHeaders "lc3plus/*.h")
  add_library(lc3plus ${libLC3plusSrcs} ${libLC3plusHeaders})
@@ -152,13 +160,28 @@ target_link_libraries(lc3plus lib_com) # For including options.h, which is neede
  if(WMOPS)
    target_link_libraries(lc3plus lib_debug)
  endif()
endif()

if(INCLUDE_SPLIT)
  file(GLOB libCldfbTransCodecSrcs "lib_rend/ivas_cldfb_trans_codec/*.c")
  file(GLOB libCldfbTransCodecHeaders "lib_rend/ivas_cldfb_trans_codec/*.h")
endif()
file(GLOB libRendSrcs "lib_rend/*.c")
file(GLOB libRendHeaders "lib_rend/*.h")
if(NOT INCLUDE_SPLIT)
  list(FILTER libRendSrcs EXCLUDE REGEX ".*lib_rend\/.*lc3plus.*\.c$")
  list(FILTER libRendHeaders EXCLUDE REGEX ".*lib_rend\/.*lc3plus.*\.h$")
endif()

if(INCLUDE_SPLIT)
  add_library(lib_rend ${libRendSrcs} ${libCldfbTransCodecSrcs} ${libRendHeaders}  ${libCldfbTransCodecHeaders})
target_link_libraries(lib_rend lib_dec lib_com lib_debug lc3plus) # Todo refactor: This dependency on lib_dec should be removed.
else()
  add_library(lib_rend ${libRendSrcs} ${libRendHeaders})
endif()
target_link_libraries(lib_rend lib_dec lib_com lib_debug) # Todo refactor: This dependency on lib_dec should be removed.
if(INCLUDE_SPLIT)
  target_link_libraries(lib_rend lc3plus)
endif()
target_include_directories(lib_rend PUBLIC lib_rend PRIVATE lib_enc)


@@ -171,13 +194,18 @@ target_include_directories(lib_dec PUBLIC lib_dec lib_rend PRIVATE lib_enc)
file(GLOB libUtilSrcs "lib_util/*.c")
file(GLOB libUtilHeaders "lib_util/*.h")
add_library(lib_util ${libUtilSrcs} ${libUtilHeaders})
target_include_directories(lib_util PUBLIC lib_util PRIVATE lib_com lib_enc lib_dec lib_rend lib_debug lc3plus)
target_include_directories(lib_util PUBLIC lib_util PRIVATE lib_com lib_enc lib_dec lib_rend lib_debug)
if(INCLUDE_SPLIT)
  target_include_directories(lib_util PRIVATE lc3plus)
endif()

if(INCLUDE_SPLIT)
  if(NOT WMOPS)
    file(GLOB unitTestIvasLc3plusSrcs "scripts/split_rendering/lc3plus/*.c")
    add_executable(ivas_lc3plus_unit_test ${unitTestIvasLc3plusSrcs})
    target_link_libraries(ivas_lc3plus_unit_test lib_rend lib_dec lib_util lib_com lib_debug)
  endif()
endif()

add_executable(IVAS_cod apps/encoder.c)
target_link_libraries(IVAS_cod lib_enc lib_util)
@@ -200,10 +228,12 @@ if(COPY_EXECUTABLES_FROM_BUILD_DIR)
  add_custom_command(TARGET IVAS_cod POST_BUILD VERBATIM COMMAND "${CMAKE_COMMAND}" -E copy "$<TARGET_FILE:IVAS_cod>" "${CMAKE_CURRENT_SOURCE_DIR}/")
  add_custom_command(TARGET IVAS_dec POST_BUILD VERBATIM COMMAND "${CMAKE_COMMAND}" -E copy "$<TARGET_FILE:IVAS_dec>" "${CMAKE_CURRENT_SOURCE_DIR}/")
  add_custom_command(TARGET IVAS_rend POST_BUILD VERBATIM COMMAND "${CMAKE_COMMAND}" -E copy "$<TARGET_FILE:IVAS_rend>" "${CMAKE_CURRENT_SOURCE_DIR}/")
  if(INCLUDE_SPLIT)
    if (NOT WMOPS)
      add_custom_command(TARGET ivas_lc3plus_unit_test POST_BUILD VERBATIM COMMAND "${CMAKE_COMMAND}" -E copy "$<TARGET_FILE:ivas_lc3plus_unit_test>" "${CMAKE_CURRENT_SOURCE_DIR}/scripts/split_rendering/lc3plus")
    endif()
  endif()
endif()

# Allow creating packages for CMake install
install(TARGETS lib_enc lib_dec lib_rend lib_com lib_util ARCHIVE DESTINATION lib)