From a4009c47e7086611e70bafdf36666b40209f6608 Mon Sep 17 00:00:00 2001 From: Chris Robinson Date: Sat, 8 Dec 2018 17:22:10 -0800 Subject: [PATCH] Add a cmake option to specify prebuilt native tools This should only be used with automated build systems that guarantee the native tools' binaries are up-to-date. Otherwise it's best to leave it alone so it can automatically rebuild them as needed. --- CMakeLists.txt | 40 ++++++++++++++++++++++++---------------- 1 file changed, 24 insertions(+), 16 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 71e20eec..502e4cbd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1216,22 +1216,30 @@ ELSE() "${OpenAL_BINARY_DIR}/version.h") ENDIF() -SET(NATIVE_SRC_DIR "${OpenAL_SOURCE_DIR}/native-tools/") -SET(NATIVE_BIN_DIR "${OpenAL_BINARY_DIR}/native-tools/") -FILE(MAKE_DIRECTORY "${NATIVE_BIN_DIR}") -SET(BIN2H_COMMAND "${NATIVE_BIN_DIR}bin2h") -SET(BSINCGEN_COMMAND "${NATIVE_BIN_DIR}bsincgen") -ADD_CUSTOM_COMMAND(OUTPUT "${BIN2H_COMMAND}" "${BSINCGEN_COMMAND}" - COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" "${NATIVE_SRC_DIR}" - COMMAND ${CMAKE_COMMAND} -E remove "${BIN2H_COMMAND}" "${BSINCGEN_COMMAND}" - COMMAND ${CMAKE_COMMAND} --build . --config "Release" - WORKING_DIRECTORY "${NATIVE_BIN_DIR}" - DEPENDS "${NATIVE_SRC_DIR}CMakeLists.txt" - IMPLICIT_DEPENDS C "${NATIVE_SRC_DIR}bin2h.c" - C "${NATIVE_SRC_DIR}bsincgen.c" - VERBATIM -) +SET(NATIVE_SRC_DIR "${OpenAL_SOURCE_DIR}/native-tools") + +SET(ALSOFT_NATIVE_TOOLS_PATH "" CACHE STRING "Path to prebuilt native tools (leave blank to auto-build)") +IF(ALSOFT_NATIVE_TOOLS_PATH) + SET(BIN2H_COMMAND "${ALSOFT_NATIVE_TOOLS_PATH}/bin2h") + SET(BSINCGEN_COMMAND "${ALSOFT_NATIVE_TOOLS_PATH}/bsincgen") +ELSE() + SET(NATIVE_BIN_DIR "${OpenAL_BINARY_DIR}/native-tools") + FILE(MAKE_DIRECTORY "${NATIVE_BIN_DIR}") + + SET(BIN2H_COMMAND "${NATIVE_BIN_DIR}/bin2h") + SET(BSINCGEN_COMMAND "${NATIVE_BIN_DIR}/bsincgen") + ADD_CUSTOM_COMMAND(OUTPUT "${BIN2H_COMMAND}" "${BSINCGEN_COMMAND}" + COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" "${NATIVE_SRC_DIR}" + COMMAND ${CMAKE_COMMAND} -E remove "${BIN2H_COMMAND}" "${BSINCGEN_COMMAND}" + COMMAND ${CMAKE_COMMAND} --build . --config "Release" + WORKING_DIRECTORY "${NATIVE_BIN_DIR}" + DEPENDS "${NATIVE_SRC_DIR}/CMakeLists.txt" + IMPLICIT_DEPENDS C "${NATIVE_SRC_DIR}/bin2h.c" + C "${NATIVE_SRC_DIR}/bsincgen.c" + VERBATIM + ) +ENDIF() ADD_CUSTOM_TARGET(native-tools DEPENDS "${BIN2H_COMMAND}" "${BSINCGEN_COMMAND}" VERBATIM @@ -1257,7 +1265,7 @@ endif() ADD_CUSTOM_COMMAND(OUTPUT "${OpenAL_BINARY_DIR}/bsinc_inc.h" COMMAND "${BSINCGEN_COMMAND}" "${OpenAL_BINARY_DIR}/bsinc_inc.h" - DEPENDS native-tools "${NATIVE_SRC_DIR}bsincgen.c" + DEPENDS native-tools "${NATIVE_SRC_DIR}/bsincgen.c" VERBATIM ) SET(ALC_OBJS ${ALC_OBJS} "${OpenAL_BINARY_DIR}/bsinc_inc.h")