提交 87de3bfb 编写于 作者: 卢旭辉

Merge branch 'add_ccache' into 'master'

Add ccache support

See merge request !1141
stages: stages:
- prepare
- linting - linting
- build - build
- test - test
- extra - extra
setenv:
stage: prepare
script:
- export CCACHE_NOHASHDIR=1
- export CCACHE_BASEDIR=${CI_PROJECT_DIR}
cpplint: cpplint:
stage: linting stage: linting
script: script:
......
...@@ -15,9 +15,18 @@ option(MACE_ENABLE_BENCHMARKS "whether to build c++ micro benchmarks" OFF) ...@@ -15,9 +15,18 @@ option(MACE_ENABLE_BENCHMARKS "whether to build c++ micro benchmarks" OFF)
option(MACE_ENABLE_EXAMPLES "whether to build examples" OFF) option(MACE_ENABLE_EXAMPLES "whether to build examples" OFF)
option(MACE_ENABLE_OPT_SIZE "whether to build with optimized binary size" ON) option(MACE_ENABLE_OPT_SIZE "whether to build with optimized binary size" ON)
option(MACE_ENABLE_OBFUSCATE "whether to build with code obfuscation" ON) option(MACE_ENABLE_OBFUSCATE "whether to build with code obfuscation" ON)
option(MACE_ENABLE_CCACHE "whether to build with ccache" ON)
message("CMAKE_INSTALL_PREFIX: ${CMAKE_INSTALL_PREFIX}") message("CMAKE_INSTALL_PREFIX: ${CMAKE_INSTALL_PREFIX}")
if(MACE_ENABLE_CCACHE)
find_program(CCACHE_FOUND ccache)
if(CCACHE_FOUND)
set(CMAKE_CXX_COMPILER_LAUNCHER ccache)
set(CMAKE_C_COMPILER_LAUNCHER ccache)
endif(CCACHE_FOUND)
endif(MACE_ENABLE_CCACHE)
# TODO make these flags well defined and organized # TODO make these flags well defined and organized
# TODO enable sanitizer # TODO enable sanitizer
set(MACE_CC_FLAGS "${MACE_CC_FLAGS} -fPIC") set(MACE_CC_FLAGS "${MACE_CC_FLAGS} -fPIC")
...@@ -33,7 +42,9 @@ if(MACE_ENABLE_OPT_SIZE) ...@@ -33,7 +42,9 @@ if(MACE_ENABLE_OPT_SIZE)
endif(MACE_ENABLE_OPT_SIZE) endif(MACE_ENABLE_OPT_SIZE)
# flags apply only to mace code (third_party excluded) # flags apply only to mace code (third_party excluded)
set(MACE_CODE_CC_FLAGS "${MACE_CODE_CC_FLAGS} -Wall -Werror") # -Wno-error=unused-command-line-argument: official Android toolchain contains
# unsupported argument and will break ccache preprocessor
set(MACE_CODE_CC_FLAGS "${MACE_CODE_CC_FLAGS} -Wall -Werror -Wno-error=unused-command-line-argument")
set(MACE_CODE_CC_FLAGS "${MACE_CODE_CC_FLAGS} -std=c++11 -D_GLIBCXX_USE_C99_MATH_TR1") set(MACE_CODE_CC_FLAGS "${MACE_CODE_CC_FLAGS} -std=c++11 -D_GLIBCXX_USE_C99_MATH_TR1")
if(IOS) if(IOS)
......
...@@ -111,3 +111,6 @@ RUN pip install -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors ...@@ -111,3 +111,6 @@ RUN pip install -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors
RUN pip install -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com \ RUN pip install -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com \
cpplint==1.4.4 cpplint==1.4.4
RUN apt-get install -y --no-install-recommends \
ccache
...@@ -100,7 +100,6 @@ inline void QuantizeMultiplier(double multiplier, ...@@ -100,7 +100,6 @@ inline void QuantizeMultiplier(double multiplier,
++*shift; ++*shift;
} }
*output_multiplier = static_cast<int32_t>(qint); *output_multiplier = static_cast<int32_t>(qint);
MACE_CHECK(*output_multiplier <= std::numeric_limits<int32_t>::max());
} }
inline void GetOutputMultiplierAndShift( inline void GetOutputMultiplierAndShift(
......
...@@ -24,6 +24,9 @@ ExternalProject_Add( ...@@ -24,6 +24,9 @@ ExternalProject_Add(
UPDATE_COMMAND "" UPDATE_COMMAND ""
BUILD_BYPRODUCTS ${GFLAGS_LIBRARIES} BUILD_BYPRODUCTS ${GFLAGS_LIBRARIES}
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${GFLAGS_INSTALL_DIR} CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${GFLAGS_INSTALL_DIR}
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
-DCMAKE_CXX_COMPILER_LAUNCHER=${CMAKE_CXX_COMPILER_LAUNCHER}
-DCMAKE_C_COMPILER_LAUNCHER=${CMAKE_C_COMPILER_LAUNCHER}
-DBUILD_STATIC_LIBS=ON -DBUILD_STATIC_LIBS=ON
-DBUILD_TESTING=OFF -DBUILD_TESTING=OFF
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
......
...@@ -32,7 +32,10 @@ if(MACE_ENABLE_TESTS) ...@@ -32,7 +32,10 @@ if(MACE_ENABLE_TESTS)
PREFIX ${GTEST_SOURCES_DIR} PREFIX ${GTEST_SOURCES_DIR}
UPDATE_COMMAND "" UPDATE_COMMAND ""
BUILD_BYPRODUCTS ${GTEST_LIBRARIES} ${GTEST_MAIN_LIBRARIES} BUILD_BYPRODUCTS ${GTEST_LIBRARIES} ${GTEST_MAIN_LIBRARIES}
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${GTEST_INSTALL_DIR} CMAKE_ARGS -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
-DCMAKE_CXX_COMPILER_LAUNCHER=${CMAKE_CXX_COMPILER_LAUNCHER}
-DCMAKE_C_COMPILER_LAUNCHER=${CMAKE_C_COMPILER_LAUNCHER}
-DCMAKE_INSTALL_PREFIX=${GTEST_INSTALL_DIR}
-DBUILD_GMOCK=ON -DBUILD_GMOCK=ON
-Dgtest_disable_pthreads=ON -Dgtest_disable_pthreads=ON
-Dgtest_force_shared_crt=ON -Dgtest_force_shared_crt=ON
......
...@@ -33,7 +33,9 @@ ExternalProject_Add( ...@@ -33,7 +33,9 @@ ExternalProject_Add(
BUILD_BYPRODUCTS ${PROTOBUF_LITE_LIBRARIES} BUILD_BYPRODUCTS ${PROTOBUF_LITE_LIBRARIES}
SOURCE_DIR "${PROTOBUF_SRCS_DIR}/src/protobuf" SOURCE_DIR "${PROTOBUF_SRCS_DIR}/src/protobuf"
CONFIGURE_COMMAND ${CMAKE_COMMAND} ../protobuf/cmake/ CONFIGURE_COMMAND ${CMAKE_COMMAND} ../protobuf/cmake/
#-DCMAKE_BUILD_TYPE=Release -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
-DCMAKE_CXX_COMPILER_LAUNCHER=${CMAKE_CXX_COMPILER_LAUNCHER}
-DCMAKE_C_COMPILER_LAUNCHER=${CMAKE_C_COMPILER_LAUNCHER}
-DCMAKE_INSTALL_PREFIX=${PROTOBUF_INSTALL_DIR} -DCMAKE_INSTALL_PREFIX=${PROTOBUF_INSTALL_DIR}
-DCMAKE_VERBOSE_MAKEFILE=OFF -DCMAKE_VERBOSE_MAKEFILE=OFF
-Dprotobuf_BUILD_TESTS=OFF -Dprotobuf_BUILD_TESTS=OFF
...@@ -90,6 +92,8 @@ if(BUILD_PROTOC) ...@@ -90,6 +92,8 @@ if(BUILD_PROTOC)
SOURCE_DIR "${PROTOC_SRCS_DIR}/src/protoc" SOURCE_DIR "${PROTOC_SRCS_DIR}/src/protoc"
CONFIGURE_COMMAND ${CMAKE_COMMAND} ../protoc/cmake/ CONFIGURE_COMMAND ${CMAKE_COMMAND} ../protoc/cmake/
-DCMAKE_BUILD_TYPE=Release -DCMAKE_BUILD_TYPE=Release
-DCMAKE_CXX_COMPILER_LAUNCHER=${CMAKE_CXX_COMPILER_LAUNCHER}
-DCMAKE_C_COMPILER_LAUNCHER=${CMAKE_C_COMPILER_LAUNCHER}
-DCMAKE_INSTALL_PREFIX=${PROTOC_INSTALL_DIR} -DCMAKE_INSTALL_PREFIX=${PROTOC_INSTALL_DIR}
-DCMAKE_VERBOSE_MAKEFILE=OFF -DCMAKE_VERBOSE_MAKEFILE=OFF
-Dprotobuf_BUILD_TESTS=OFF -Dprotobuf_BUILD_TESTS=OFF
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册