mingw64 build fixes
This commit is contained in:
parent
7698a62c1f
commit
f6cdf2914c
@ -12,9 +12,16 @@ set(CMAKE_CXX_STANDARD 20)
|
|||||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||||
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
||||||
set(CMAKE_MODULE_PATH
|
set(CMAKE_MODULE_PATH
|
||||||
${CMAKE_MODULE_PATH}
|
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules
|
${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules
|
||||||
|
${CMAKE_MODULE_PATH}
|
||||||
)
|
)
|
||||||
|
if (MINGW)
|
||||||
|
set(CMAKE_MODULE_PATH
|
||||||
|
/mingw64/lib/cmake
|
||||||
|
/mingw64/lib64/cmake
|
||||||
|
${CMAKE_MODULE_PATH}
|
||||||
|
)
|
||||||
|
endif()
|
||||||
set(THREADS_PREFER_PTHREAD_FLAG ON)
|
set(THREADS_PREFER_PTHREAD_FLAG ON)
|
||||||
|
|
||||||
if (NOT CMAKE_BUILD_TYPE)
|
if (NOT CMAKE_BUILD_TYPE)
|
||||||
|
@ -2,6 +2,19 @@
|
|||||||
if (REPERTORY_ENABLE_TESTING)
|
if (REPERTORY_ENABLE_TESTING)
|
||||||
enable_testing()
|
enable_testing()
|
||||||
|
|
||||||
|
file(GLOB_RECURSE UNITTEST_SOURCES
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/tests/*.cpp
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/tests/*.hpp
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/tests/fixtures/*.hpp
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/tests/mocks/*.hpp
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/tests/utils/*.hpp
|
||||||
|
)
|
||||||
|
|
||||||
|
add_project_executable(unittests "${UNITTEST_SOURCES}")
|
||||||
|
|
||||||
|
if (MINGW)
|
||||||
|
find_package(GTest REQUIRED)
|
||||||
|
else()
|
||||||
set(GTEST_PROJECT_NAME gtest_${GTEST_VERSION})
|
set(GTEST_PROJECT_NAME gtest_${GTEST_VERSION})
|
||||||
set(GTEST_BUILD_ROOT ${EXTERNAL_BUILD_ROOT}/builds/${GTEST_PROJECT_NAME})
|
set(GTEST_BUILD_ROOT ${EXTERNAL_BUILD_ROOT}/builds/${GTEST_PROJECT_NAME})
|
||||||
if (MACOS)
|
if (MACOS)
|
||||||
@ -30,23 +43,12 @@ if (REPERTORY_ENABLE_TESTING)
|
|||||||
${GTEST_BUILD_ROOT}/src/gtest_project/googlemock/include
|
${GTEST_BUILD_ROOT}/src/gtest_project/googlemock/include
|
||||||
)
|
)
|
||||||
|
|
||||||
if(UNIX)
|
|
||||||
set(GTEST_LIBRARIES
|
set(GTEST_LIBRARIES
|
||||||
${GTEST_BUILD_ROOT}/src/gtest_project-build/lib/libgmock.a
|
${GTEST_BUILD_ROOT}/src/gtest_project-build/lib/libgmock.a
|
||||||
${GTEST_BUILD_ROOT}/src/gtest_project-build/lib/libgtest.a
|
${GTEST_BUILD_ROOT}/src/gtest_project-build/lib/libgtest.a
|
||||||
${GTEST_BUILD_ROOT}/src/gtest_project-build/lib/libgtest_main.a
|
${GTEST_BUILD_ROOT}/src/gtest_project-build/lib/libgtest_main.a
|
||||||
)
|
)
|
||||||
endif()
|
|
||||||
|
|
||||||
file(GLOB_RECURSE UNITTEST_SOURCES
|
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/tests/*.cpp
|
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/tests/*.hpp
|
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/tests/fixtures/*.hpp
|
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/tests/mocks/*.hpp
|
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/tests/utils/*.hpp
|
|
||||||
)
|
|
||||||
|
|
||||||
add_project_executable(unittests "${UNITTEST_SOURCES}")
|
|
||||||
add_dependencies(unittests
|
add_dependencies(unittests
|
||||||
gtest_project
|
gtest_project
|
||||||
zlib_project
|
zlib_project
|
||||||
@ -56,6 +58,8 @@ if (REPERTORY_ENABLE_TESTING)
|
|||||||
GTEST_LINKED_AS_SHARED_LIBRARY=1
|
GTEST_LINKED_AS_SHARED_LIBRARY=1
|
||||||
REPERTORY_TESTING
|
REPERTORY_TESTING
|
||||||
)
|
)
|
||||||
|
endif()
|
||||||
|
|
||||||
target_include_directories(unittests PUBLIC
|
target_include_directories(unittests PUBLIC
|
||||||
${GTEST_INCLUDE_DIRS}
|
${GTEST_INCLUDE_DIRS}
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/tests
|
${CMAKE_CURRENT_SOURCE_DIR}/tests
|
||||||
|
@ -938,8 +938,25 @@ RUN set -ex \
|
|||||||
&& cd ${MY_WORKDIR} \
|
&& cd ${MY_WORKDIR} \
|
||||||
&& rm -r wxWidgets-${MY_WXWIDGETS_VERSION}
|
&& rm -r wxWidgets-${MY_WXWIDGETS_VERSION}
|
||||||
|
|
||||||
|
ARG GTEST_VERSION=1.14.0
|
||||||
|
ENV MY_GTEST_VERSION=${GTEST_VERSION}
|
||||||
|
RUN set -ex \
|
||||||
|
\
|
||||||
|
&& wget -q https://github.com/google/googletest/archive/refs/tags/v${GTEST_VERSION}.tar.gz -O - | tar -xz \
|
||||||
|
&& cd googletest-${MY_GTEST_VERSION} \
|
||||||
|
&& mkdir build \
|
||||||
|
&& cd build \
|
||||||
|
&& cmake .. -DCMAKE_TOOLCHAIN_FILE=${MY_TOOLCHAIN_FILE_CMAKE} \
|
||||||
|
-DCMAKE_BUILD_TYPE=Release \
|
||||||
|
-DBUILD_SHARED_LIBS=ON \
|
||||||
|
-DBUILD_STATIC_LIBS=ON \
|
||||||
|
-DCMAKE_INSTALL_PREFIX=${MY_MINGW} \
|
||||||
|
&& make -j${MY_NUM_JOBS} \
|
||||||
|
&& make install \
|
||||||
|
&& cd ${MY_WORKDIR} \
|
||||||
|
&& rm -r googletest-${MY_GTEST_VERSION}
|
||||||
|
|
||||||
RUN set -ex \
|
RUN set -ex \
|
||||||
\
|
\
|
||||||
&& mv ${MY_MINGW}/lib/*.dll ${MY_MINGW}/bin \
|
&& mv ${MY_MINGW}/lib/*.dll ${MY_MINGW}/bin \
|
||||||
&& chmod 0777 -R ${MY_MINGW}
|
&& chmod 0777 -R ${MY_MINGW}
|
||||||
|
|
||||||
|
@ -3,13 +3,12 @@
|
|||||||
BUILD_TYPE=$1
|
BUILD_TYPE=$1
|
||||||
BUILD_CLEAN=$2
|
BUILD_CLEAN=$2
|
||||||
IS_MINGW=$3
|
IS_MINGW=$3
|
||||||
IS_WIN32=$4
|
|
||||||
|
|
||||||
if [ "${BUILD_TYPE}" == "" ]; then
|
if [ "${BUILD_TYPE}" == "" ]; then
|
||||||
BUILD_TYPE=Release
|
BUILD_TYPE=Release
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "${IS_MINGW}" == "1" ] || [ "${IS_WIN32}" == "1" ]; then
|
if [ "${IS_MINGW}" == "1" ]; then
|
||||||
BUILD_ROOT=build2
|
BUILD_ROOT=build2
|
||||||
else
|
else
|
||||||
BUILD_ROOT=build
|
BUILD_ROOT=build
|
||||||
@ -41,7 +40,7 @@ if [ "${IS_MINGW}" == "1" ]; then
|
|||||||
CMAKE_ADDITIONAL_OPTS=-DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN}
|
CMAKE_ADDITIONAL_OPTS=-DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "${IS_MINGW}" == "1" ] || [ "${IS_WIN32}" == "1" ]; then
|
if [ "${IS_MINGW}" == "1" ]; then
|
||||||
EXE_EXT=.exe
|
EXE_EXT=.exe
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -55,7 +54,7 @@ pushd ..
|
|||||||
ln -sf ${BUILD_FOLDER}/compile_commands.json .
|
ln -sf ${BUILD_FOLDER}/compile_commands.json .
|
||||||
ln -sf ${BUILD_FOLDER}/repertory${EXE_EXT} .
|
ln -sf ${BUILD_FOLDER}/repertory${EXE_EXT} .
|
||||||
ln -sf ${BUILD_FOLDER}/unittests${EXE_EXT} .
|
ln -sf ${BUILD_FOLDER}/unittests${EXE_EXT} .
|
||||||
if [ "${IS_MINGW}" == "1" ] || [ "${IS_WIN32}" == "1" ]; then
|
if [ "${IS_MINGW}" == "1" ]; then
|
||||||
ln -sf ${BUILD_FOLDER}/winfsp-x64.dll .
|
ln -sf ${BUILD_FOLDER}/winfsp-x64.dll .
|
||||||
fi
|
fi
|
||||||
popd
|
popd
|
||||||
@ -71,7 +70,7 @@ pushd ../${BUILD_ROOT}
|
|||||||
ln -sf ${BUILD_FOLDER}/compile_commands.json .
|
ln -sf ${BUILD_FOLDER}/compile_commands.json .
|
||||||
ln -sf ${BUILD_FOLDER}/repertory${EXE_EXT} .
|
ln -sf ${BUILD_FOLDER}/repertory${EXE_EXT} .
|
||||||
ln -sf ${BUILD_FOLDER}/unittests${EXE_EXT} .
|
ln -sf ${BUILD_FOLDER}/unittests${EXE_EXT} .
|
||||||
if [ "${IS_MINGW}" == "1" ] || [ "${IS_WIN32}" == "1" ]; then
|
if [ "${IS_MINGW}" == "1" ]; then
|
||||||
ln -sf ${BUILD_FOLDER}/winfsp-x64.dll .
|
ln -sf ${BUILD_FOLDER}/winfsp-x64.dll .
|
||||||
fi
|
fi
|
||||||
popd
|
popd
|
||||||
|
@ -1,10 +1,15 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# #!/bin/bash
|
|
||||||
#
|
|
||||||
# pushd "$(dirname "$0")/.."
|
|
||||||
# scripts/make_common.sh "${1}" "${2}" 1
|
|
||||||
# popd
|
|
||||||
#
|
#
|
||||||
|
NUM_JOBS=${MY_NUM_JOBS}
|
||||||
|
if [[ -z "${NUM_JOBS}" ]]; then
|
||||||
|
NUM_JOBS=$(getconf _NPROCESSORS_ONLN 2> /dev/null || getconf NPROCESSORS_ONLN 2> /dev/null || echo 1)
|
||||||
|
if [ "${NUM_JOBS}" -gt "2" ]; then
|
||||||
|
NUM_JOBS=$(expr ${NUM_JOBS} - 2)
|
||||||
|
elif [ "${NUM_JOBS}" -gt "1" ]; then
|
||||||
|
NUM_JOBS=$(expr ${NUM_JOBS} - 1)
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
BUILD_TYPE=$1
|
BUILD_TYPE=$1
|
||||||
BUILD_CLEAN=$2
|
BUILD_CLEAN=$2
|
||||||
|
|
||||||
@ -18,6 +23,6 @@ docker stop repertory_${NAME}
|
|||||||
docker rm repertory_${NAME}
|
docker rm repertory_${NAME}
|
||||||
docker build --build-arg NUM_JOBS=${MY_NUM_JOBS} -t repertory:${NAME} - < ${SOURCE_DIR}/docker/${BUILD_ARCH}/${NAME} &&
|
docker build --build-arg NUM_JOBS=${MY_NUM_JOBS} -t repertory:${NAME} - < ${SOURCE_DIR}/docker/${BUILD_ARCH}/${NAME} &&
|
||||||
docker run -td -u $(id -u):$(id -g) --name repertory_${NAME} -w ${SOURCE_DIR} -v ${SOURCE_DIR}:${SOURCE_DIR}:rw,z repertory:${NAME} &&
|
docker run -td -u $(id -u):$(id -g) --name repertory_${NAME} -w ${SOURCE_DIR} -v ${SOURCE_DIR}:${SOURCE_DIR}:rw,z repertory:${NAME} &&
|
||||||
docker exec repertory_${NAME} /bin/bash -c "${SOURCE_DIR}/scripts/make_common.sh ${BUILD_TYPE} "${BUILD_CLEAN}" 1"
|
docker exec repertory_${NAME} /bin/bash -c "${SOURCE_DIR}/scripts/make_common.sh ${BUILD_TYPE} \"${BUILD_CLEAN}\" 1"
|
||||||
docker stop repertory_${NAME}
|
docker stop repertory_${NAME}
|
||||||
docker rm repertory_${NAME}
|
docker rm repertory_${NAME}
|
Loading…
x
Reference in New Issue
Block a user