if(NOT WIN32 AND BUILD_V123) if(NOT LIBAO_PATH AND NOT BUILD_STATIC) find_package(AO QUIET) if(AO_FOUND) set(LIBAO_SOURCE "(system)") set(LIBAO_INCLUDE ${AO_INCLUDE_DIR}) endif() endif() if(LIBAO_PATH OR BUILD_STATIC OR NOT AO_FOUND) FetchDependency(LIBAO DIR libao ) if(LIBAO_PATH) if(BUILD_STATIC) set(LIBAO_CONF_ARGS --enable-static --disable-shared) set(LINK_EXT .a) else() set(LIBAO_CONF_ARGS --disable-static --enable-shared) set(LINK_EXT .so) endif() set(LIBAO_LINK_PATH ${LIBAO_BIN}/bin/usr/local/lib/libao${LINK_EXT}) set(LIBAO_INCLUDE ${LIBAO_BIN}/bin/usr/local/include) if(NOT EXISTS ${LIBAO_PATH}/configure) add_custom_target(LIBAO_AUTORECONF COMMAND ./autogen.sh BYPRODUCTS ${LIBAO_PATH}/configure WORKING_DIRECTORY ${LIBAO_PATH} ) endif() file(MAKE_DIRECTORY ${LIBAO_BIN}) add_custom_target(LIBAO_CONFIGURE COMMAND "${LIBAO_PATH}/configure" ${LIBAO_CONF_ARGS} CC="${CMAKE_C_COMPILER}" AR="${CMAKE_AR}" DEPENDS ${LIBAO_PATH}/configure BYPRODUCTS ${LIBAO_BIN}/Makefile WORKING_DIRECTORY ${LIBAO_BIN} ) add_custom_target(LIBAO_MAKE COMMAND make && make install DESTDIR=${LIBAO_BIN}/bin DEPENDS ${LIBAO_BIN}/Makefile BYPRODUCTS ${LIBAO_LINK_PATH} ${LIBAO_BIN} WORKING_DIRECTORY ${LIBAO_BIN} ) if(BUILD_STATIC) add_library(ao STATIC IMPORTED) else() add_library(ao SHARED IMPORTED) endif() if(NOT EXISTS ${LIBAO_LINK_PATH}) add_dependencies(ao LIBAO_MAKE) endif() set_target_properties(ao PROPERTIES IMPORTED_LOCATION ${LIBAO_LINK_PATH} ) elseif(BUILD_STATIC) message(FATAL_ERROR "Path to libao must be set. (Use LIBAO_PATH or turn off BUILD_V123)") else() set(BUILD_V123 OFF) endif() endif() endif() if(NOT BUILD_V123) unset(LIBAO_SOURCE) endif()