diff --git a/CMakeLists.txt b/CMakeLists.txt index 7877624d6971f7bb699b98f02d245d44ba8a6da7..f4b43a77562c2b8257defa9ec94975f6d7d590d9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -40,6 +40,11 @@ option(MGE_USE_SYSTEM_LIB "Build MegEngine with system libraries." OFF) option(MGB_WITH_FLATBUFFERS "Build MegBrain with FlatBuffers serialization support." ON) option(BUILD_SHARED_LIBS "Build shared libraries" ON) +if (APPLE) + set (BUILD_SHARED_LIBS OFF) + message("build static for xcode framework require") +endif() + if (MGE_USE_SYSTEM_LIB) set (MGE_CUDA_USE_STATIC OFF) endif() @@ -245,8 +250,6 @@ if(MGE_INFERENCE_ONLY) set(MGE_WITH_DISTRIBUTED OFF) message("-- Disable python module for inference only build.") set(MGE_WITH_PYTHON_MODULE OFF) - message("-- Disable tests for inference only build.") - set(MGE_WITH_TEST OFF) endif() if(MGE_WITH_DISTRIBUTED) @@ -469,7 +472,7 @@ endif() set(MGB_ENABLE_TENSOR_RT ${MGE_WITH_TRT}) # Inference only -if(MGE_INFERENCE_ONLY) +if(MGE_INFERENCE_ONLY AND NOT MGE_WITH_TEST) set(MGB_ENABLE_GRAD 0) set(MGB_BUILD_SLIM_SERVING 1) else() diff --git a/dnn/test/CMakeLists.txt b/dnn/test/CMakeLists.txt index 2a50bdd89dfeb2412b6c7271666c05b5b11df9ec..823aa88714fd8d85754aff4ba57ff96fef26854b 100644 --- a/dnn/test/CMakeLists.txt +++ b/dnn/test/CMakeLists.txt @@ -28,6 +28,7 @@ endif() add_executable(megdnn_test ${SOURCES}) +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-narrowing") target_link_libraries(megdnn_test gtest) target_link_libraries(megdnn_test megdnn ${MGE_BLAS_LIBS}) @@ -36,7 +37,9 @@ target_include_directories(megdnn_test ${PROJECT_SOURCE_DIR}/third_party/midout/src ) -if(UNIX) +if(APPLE OR ANDROID) + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS}") +else() set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -static-libgcc -static-libstdc++") endif() @@ -44,6 +47,8 @@ if(MGE_ENABLE_COVERAGE) set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} --coverage") endif() -if(UNIX) +if(APPLE OR ANDROID) + target_link_libraries(megdnn_test dl) +else() target_link_libraries(megdnn_test dl rt) endif() diff --git a/dnn/test/arm_common/conv_bias_multi_thread.cpp b/dnn/test/arm_common/conv_bias_multi_thread.cpp index 8eb1c033c4fda6defffa6198d8d4573ace12511e..279f9e4c324c3bb2bc74da1a83e688ac58e7993f 100644 --- a/dnn/test/arm_common/conv_bias_multi_thread.cpp +++ b/dnn/test/arm_common/conv_bias_multi_thread.cpp @@ -79,6 +79,7 @@ std::vector get_nchw44_conv_bias_args( using NLMode = param::ConvBias::NonlineMode; std::vector args; + MEGDNN_MARK_USED_VAR(no_pad); auto pack = [&](size_t n, size_t oc, size_t ic, size_t h, size_t w, size_t kernel, size_t stride, size_t group, NLMode nlmode, diff --git a/dnn/test/arm_common/matrix_mul.cpp b/dnn/test/arm_common/matrix_mul.cpp index 73db7dcd67770b08ae2fa19cc9f63f925afd6989..582b05223e9d548bb4c08058302d33e5afdaa331 100644 --- a/dnn/test/arm_common/matrix_mul.cpp +++ b/dnn/test/arm_common/matrix_mul.cpp @@ -175,6 +175,7 @@ TEST_F(ARM_COMMON, QINT8x8x32_GEMV_MK4) { checker.set_rng(0, rng.get()).set_rng(1, rng.get()); auto run = [&](size_t M, size_t K, size_t N) { + MEGDNN_MARK_USED_VAR(N); Param param; param.format = param::MatrixMul::Format::MK4; param.transposeA = false; diff --git a/scripts/cmake-build/cross_build_android_arm_inference.sh b/scripts/cmake-build/cross_build_android_arm_inference.sh index cf68b7d03ad5d71f3e2cf6cfebd50fd25b88ab6b..64f099dce239f39513ed45b9dc6211b4cb604622 100755 --- a/scripts/cmake-build/cross_build_android_arm_inference.sh +++ b/scripts/cmake-build/cross_build_android_arm_inference.sh @@ -138,7 +138,7 @@ function cmake_build() { make install/strip } -build_flatc $SRC_DIR +build_flatc $SRC_DIR $REMOVE_OLD_BUILD api_level=16 abi="armeabi-v7a with NEON" diff --git a/scripts/cmake-build/cross_build_ios_arm_inference.sh b/scripts/cmake-build/cross_build_ios_arm_inference.sh index 3dcb21a6e5dbcf182920d7a607cfb83a5ec3f89f..934b694fffb4e767dafb28d097cd02e53f51dd03 100755 --- a/scripts/cmake-build/cross_build_ios_arm_inference.sh +++ b/scripts/cmake-build/cross_build_ios_arm_inference.sh @@ -136,7 +136,7 @@ function cmake_build() { make install } -build_flatc $SRC_DIR +build_flatc $SRC_DIR $REMOVE_OLD_BUILD # refs for ../../toolchains/ios.toolchain.cmake # to config this, if u want to build other, diff --git a/scripts/cmake-build/cross_build_linux_arm_inference.sh b/scripts/cmake-build/cross_build_linux_arm_inference.sh index 541e08fdcb9f582505430f76c1443d03c16dec96..3b1034cf23902954a4679264b7ac8add7d003266 100755 --- a/scripts/cmake-build/cross_build_linux_arm_inference.sh +++ b/scripts/cmake-build/cross_build_linux_arm_inference.sh @@ -128,7 +128,7 @@ function cmake_build() { make install/strip } -build_flatc $SRC_DIR +build_flatc $SRC_DIR $REMOVE_OLD_BUILD toolchain=null if [ "$ARCH" = "arm64-v8a" ]; then diff --git a/scripts/cmake-build/utils/utils.sh b/scripts/cmake-build/utils/utils.sh index 39aa8077b11fbc15bd8b90e81ecb3d2d02cb6c7f..226588fe4c7d59b6d48475b9d8d0b47d16833034 100755 --- a/scripts/cmake-build/utils/utils.sh +++ b/scripts/cmake-build/utils/utils.sh @@ -12,18 +12,30 @@ fi function build_flatc() { BUILD_DIR=$1/build_dir/host_flatc/build INSTALL_DIR=$BUILD_DIR/../install - if [ -e $BUILD_DIR ];then - echo "clean old dir: $BUILD_DIR" - rm -rf $BUILD_DIR + REMOVE_OLD_BUILD=$2 + + if [ $REMOVE_OLD_BUILD = "true" ]; then + if [ -e $BUILD_DIR ];then + echo "clean old dir: $BUILD_DIR" + rm -rf $BUILD_DIR + fi + if [ -e $INSTALL_DIR ];then + echo "clean old dir: $INSTALL_DIR" + rm -rf $INSTALL_DIR + fi + else + echo "strip remove old build" + fi + + if [ ! -e $BUILD_DIR ];then + echo "create build: $BUILD_DIR" + mkdir -p $BUILD_DIR fi - if [ -e $INSTALL_DIR ];then - echo "clean old dir: $INSTALL_DIR" - rm -rf $INSTALL_DIR + if [ ! -e $INSTALL_DIR ];then + echo "create install $INSTALL_DIR" + mkdir -p $INSTALL_DIR fi - echo "create build dir" - mkdir -p $BUILD_DIR - mkdir -p $INSTALL_DIR cd $BUILD_DIR cmake -G "$MAKEFILE_TYPE Makefiles" \ -DCMAKE_BUILD_TYPE=Release \ diff --git a/sdk/load-and-run/CMakeLists.txt b/sdk/load-and-run/CMakeLists.txt index 486c05728dcdc521a7c4da5988b80d5e917a0f8c..159fa2d6d34a7c0ef16f75417bef0c3714baff6d 100755 --- a/sdk/load-and-run/CMakeLists.txt +++ b/sdk/load-and-run/CMakeLists.txt @@ -2,7 +2,7 @@ include_directories(src) file (GLOB_RECURSE SOURCES src/*.cpp main.cpp) add_executable (load_and_run ${SOURCES}) -if (WIN32) +if (WIN32) # Windows does not support implicitly importing data members from DLL. target_link_libraries(load_and_run megbrain megdnn) else() diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 767715b6019ff02f73bb63e39159adcdc0820d63..45cc3d690352318f9130aa6a919e29d1fc532473 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -28,7 +28,9 @@ if(CXX_SUPPORT_WCLASS_MEMACCESS) endif() endif() -if(UNIX) +if(APPLE OR ANDROID) + target_link_libraries(megbrain_test dl) +else() target_link_libraries(megbrain_test dl rt) endif()