Improve mingw support.

- Remove existing mingw-w64 toolchain file.
- Add x86 and x86_64 mingw-w64 toolchain files.
- Add gtest mingw work around (disable gtest cmake and build
  our own static lib).

Change-Id: Ic602df62f5485ccbd79deccf3aed2a4d35fef8ad
This commit is contained in:
Tom Finegan 2017-09-18 13:10:57 -07:00
parent 27eb0b9002
commit fbc8ab96da
4 changed files with 56 additions and 24 deletions

View File

@ -370,7 +370,12 @@ if (ENABLE_TESTS)
# This directory is where libwebm will build googletest dependencies.
set(GTEST_BUILD_DIR "${CMAKE_BINARY_DIR}/googletest_build")
add_subdirectory("${GTEST_SRC_DIR}" "${GTEST_BUILD_DIR}")
if (LIBWEBM_DISABLE_GTEST_CMAKE)
add_library(gtest STATIC "${GTEST_SRC_DIR}/googletest/src/gtest-all.cc")
include_directories("${GTEST_SRC_DIR}/googletest")
else ()
add_subdirectory("${GTEST_SRC_DIR}" "${GTEST_BUILD_DIR}")
endif ()
include_directories("${GTEST_SRC_DIR}/googletest/include")
add_executable(mkvmuxer_tests ${mkvmuxer_tests_sources})

View File

@ -1,23 +0,0 @@
## Copyright (c) 2016 The WebM project authors. All Rights Reserved.
##
## Use of this source code is governed by a BSD-style license
## that can be found in the LICENSE file in the root of the source
## tree. An additional intellectual property rights grant can be found
## in the file PATENTS. All contributing project authors may
## be found in the AUTHORS file in the root of the source tree.
set(MINGW_PREFIX "i686-w64-mingw32" CACHE STRING "MinGW cross compiler")
# Target OS name.
set(CMAKE_SYSTEM_NAME Windows)
# Cross compiler values.
set(CMAKE_C_COMPILER ${MINGW_PREFIX}-gcc)
set(CMAKE_CXX_COMPILER ${MINGW_PREFIX}-g++)
set(CMAKE_RC_COMPILER ${MINGW_PREFIX}-windres)
# Tell CMake not to look too hard for things; we want the target toolchain
# defaults.
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)

26
build/x86-mingw-gcc.cmake Normal file
View File

@ -0,0 +1,26 @@
## Copyright (c) 2017 The WebM project authors. All Rights Reserved.
##
## Use of this source code is governed by a BSD-style license
## that can be found in the LICENSE file in the root of the source
## tree. An additional intellectual property rights grant can be found
## in the file PATENTS. All contributing project authors may
## be found in the AUTHORS file in the root of the source tree.
if (NOT LIBWEBM_BUILD_X86_MINGW_GCC_CMAKE_)
set(LIBWEBM_BUILD_X86_MINGW_GCC_CMAKE_ 1)
set(CMAKE_SYSTEM_PROCESSOR "x86")
set(CMAKE_SYSTEM_NAME "Windows")
set(CMAKE_C_COMPILER_ARG1 "-m32")
set(CMAKE_CXX_COMPILER_ARG1 "-m32")
if ("${CROSS}" STREQUAL "")
set(CROSS i686-w64-mingw32-)
endif ()
set(CMAKE_C_COMPILER ${CROSS}gcc)
set(CMAKE_CXX_COMPILER ${CROSS}g++)
# Disable googletest CMake usage for mingw cross compiles.
set(LIBWEBM_DISABLE_GTEST_CMAKE 1)
endif () # LIBWEBM_BUILD_X86_MINGW_GCC_CMAKE_

View File

@ -0,0 +1,24 @@
## Copyright (c) 2017 The WebM project authors. All Rights Reserved.
##
## Use of this source code is governed by a BSD-style license
## that can be found in the LICENSE file in the root of the source
## tree. An additional intellectual property rights grant can be found
## in the file PATENTS. All contributing project authors may
## be found in the AUTHORS file in the root of the source tree.
if (NOT LIBWEBM_BUILD_X86_64_MINGW_GCC_CMAKE_)
set(LIBWEBM_BUILD_X86_64_MINGW_GCC_CMAKE_ 1)
set(CMAKE_SYSTEM_PROCESSOR "x86_64")
set(CMAKE_SYSTEM_NAME "Windows")
if ("${CROSS}" STREQUAL "")
set(CROSS x86_64-w64-mingw32-)
endif ()
set(CMAKE_C_COMPILER ${CROSS}gcc)
set(CMAKE_CXX_COMPILER ${CROSS}g++)
# Disable googletest CMake usage for mingw cross compiles.
set(LIBWEBM_DISABLE_GTEST_CMAKE 1)
endif () # LIBWEBM_BUILD_X86_64_MINGW_GCC_CMAKE_