2016-10-21 3 views
0

Я строю bucnh библиотек, использующих ndk-build. В какой-то момент, файл тк может быть в два раза включены, так как она импортирует 3-библиотеками, я защищен двойной импорт с помощью глобальной переменной:Android makefiles: Как «раннее возвращение»?

# Importing nlopt! 
# Prevent warnings reporting module was imported twice: 
ifneq ($(imported_nlopt_$(TARGET_ARCH_ABI)),true) 
    imported_nlopt_$(TARGET_ARCH_ABI) := true 
    ifeq ($(APP_OPTIM),debug) 
     # Importing static library nlopt_debug: 
      include $(CLEAR_VARS) 
      LOCAL_MODULE := nlopt_debug 
      LOCAL_SRC_FILES := nlopt/nlopt-2.4.2/lib/$(PLATFORM)/$(COMPILER)/Debug/$(LIB_PREFIX)nlopt$(DEBUG_INFIX)$(DYNAMIC_LINK_EXT) 
      include $(PREBUILT_SHARED_LIBRARY) 
    else 
     # Importing static library nlopt_release: 
      include $(CLEAR_VARS) 
      LOCAL_MODULE := nlopt_release 
      LOCAL_SRC_FILES := nlopt/nlopt-2.4.2/lib/$(PLATFORM)/$(COMPILER)/Release/$(LIB_PREFIX)nlopt$(DYNAMIC_LINK_EXT) 
      include $(PREBUILT_SHARED_LIBRARY) 
    endif 
else 
    $(info "NLOPT already imported!") 
endif 

Мне нужно сделать это во многих местах, и она начинает anoying меня весь файл находится в инструкции if.

«Ранняя прибыль» поддерживается в make-файлах? Могу ли я сделать что-то вроде:

ifeq ($(imported_nlopt_$(TARGET_ARCH_ABI)),true) 
    return 
endif 

imported_nlopt_$(TARGET_ARCH_ABI) := true 
... 

return не распознается, когда я исполняю это.

+0

AFAIK Нету. Таких вещей нет. – Hayt

ответ

0

К счастью, в Android.mk достаточно защитить только о include $(BUILD_SHARED_LIBRARY) и т.д.

Смежные вопросы