From 6381e2cd7a1a22aace8da1e67c1ecb99c1879ec9 Mon Sep 17 00:00:00 2001 From: Bignaux Ronan Date: Thu, 6 Sep 2018 23:21:48 +0200 Subject: Refactoring:mingw:simplify toolchain --- .circleci/config.yml | 7 +++++-- CMakeLists.txt | 2 +- Toolchain/arm-mingw32ce.cmake | 8 -------- Toolchain/i386-mingw32ce.cmake | 8 -------- Toolchain/mingw.cmake | 33 +++++++++++++++++++++++++++++++++ Toolchain/mingw32.cmake | 22 ---------------------- scripts/build_win32.sh | 12 +++++++++++- scripts/build_wince.sh | 12 +++++++++--- 8 files changed, 59 insertions(+), 45 deletions(-) delete mode 100644 Toolchain/arm-mingw32ce.cmake delete mode 100644 Toolchain/i386-mingw32ce.cmake create mode 100644 Toolchain/mingw.cmake delete mode 100644 Toolchain/mingw32.cmake diff --git a/.circleci/config.yml b/.circleci/config.yml index e190d8e44..57e2f4c68 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -136,13 +136,16 @@ jobs: steps: - checkout - run: - name: Build for Windows + name: Prepare the Windows build environment command: | apt-get update && xargs -a scripts/setup_14.04_requirements.list apt-get install -y apt-get install -y software-properties-common add-apt-repository -y ppa:george-edison55/cmake-3.x apt-get remove -y cmake - apt-get install -y cmake3 + apt-get install -y cmake3 mingw-w64 mingw-w64-tools default-jdk nsis libsaxonb-java curl + - run: + name: Build for Windows + command: | bash scripts/build_win32.sh - store_artifacts: path: win32/navit.exe diff --git a/CMakeLists.txt b/CMakeLists.txt index 96d203ffa..847ef1548 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -584,7 +584,7 @@ if(NOT CACHE_SIZE) endif(NOT CACHE_SIZE) if(WIN32 OR WINCE) - SET(CMAKE_EXECUTABLE_SUFFIX ".exe") + SET(CMAKE_EXECUTABLE_SUFFIX ".exe") #remove it when wince'll use cmake 3 add_module(graphics/win32 "Windows detected" TRUE) add_plugin(support/win32 "Windows detected" TRUE) diff --git a/Toolchain/arm-mingw32ce.cmake b/Toolchain/arm-mingw32ce.cmake deleted file mode 100644 index 4ccdd22c4..000000000 --- a/Toolchain/arm-mingw32ce.cmake +++ /dev/null @@ -1,8 +0,0 @@ -SET(CMAKE_SYSTEM_NAME WINCE) - -# specify the cross compiler -FIND_PROGRAM(CMAKE_C_COMPILER NAMES arm-mingw32ce-gcc arm-wince-mingw32ce-gcc) -FIND_PROGRAM(CMAKE_CXX_COMPILER NAMES arm-mingw32ce-g++ arm-wince-mingw32ce-g++) -FIND_PROGRAM(CMAKE_RC_COMPILER_INIT NAMES arm-mingw32ce-windres arm-wince-mingw32ce-windres) -SET(PKG_CONFIG_EXECUTABLE "arm-mingw32ce-pkg-config") -SET(WINCE TRUE) diff --git a/Toolchain/i386-mingw32ce.cmake b/Toolchain/i386-mingw32ce.cmake deleted file mode 100644 index a1cc562f6..000000000 --- a/Toolchain/i386-mingw32ce.cmake +++ /dev/null @@ -1,8 +0,0 @@ -SET(CMAKE_SYSTEM_NAME WINCE) - -# specify the cross compiler -FIND_PROGRAM(CMAKE_C_COMPILER NAMES i386-mingw32ce-gcc ) -FIND_PROGRAM(CMAKE_CXX_COMPILER NAMES i386-mingw32ce-g++ ) -FIND_PROGRAM(CMAKE_RC_COMPILER_INIT NAMES i386-mingw32ce-windres ) -SET(PKG_CONFIG_EXECUTABLE "i386-mingw32ce-pkg-config") -SET(WINCE TRUE) diff --git a/Toolchain/mingw.cmake b/Toolchain/mingw.cmake new file mode 100644 index 000000000..5ade65c3b --- /dev/null +++ b/Toolchain/mingw.cmake @@ -0,0 +1,33 @@ +SET(CMAKE_C_COMPILER ${TARGET_ARCH}-gcc) +SET(CMAKE_CXX_COMPILER ${TARGET_ARCH}-g++) +SET(CMAKE_RC_COMPILER_INIT ${TARGET_ARCH}-windres) +SET(PKG_CONFIG_EXECUTABLE ${TARGET_ARCH}-pkg-config) + +# unecessary according to https://cmake.org/cmake/help/v3.4/variable/WINCE.html +# TODO: plateform wince change too much things for now, fix later. +if (CMAKE_SYSTEM_NAME STREQUAL "WindowsCEtest") + SET(CMAKE_EXECUTABLE_SUFFIX ".exe") + SET(WINCE TRUE) +endif() + +if(WINCE) + # MINGW32CE_PATH is set in dockerfile + message(STATUS "Wince toolchain in $ENV{MINGW32CE_PATH}") + + #SET(CMAKE_FIND_ROOT_PATH $ENV{MINGW32CE_PATH}) + #SET(CMAKE_INSTALL_PREFIX $ENV{MINGW32CE_PATH}) +endif(WINCE) + +if(WIN32) + message(STATUS "WIN32 case") + #SET(CMAKE_FIND_ROOT_PATH ${MINGW_INSTALL_PREFIX}) + #SET(QT_MOC_EXECUTABLE bin/moc) + #SET(QT_RCC_EXECUTABLE ${MINGW_INSTALL_PREFIX}/bin/rcc) + #SET(QT_UIC_EXECUTABLE ${MINGW_INSTALL_PREFIX}/bin/uic) + SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) + SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) + SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) + + SET(CMAKE_FIND_ROOT_PATH ${MINGW_INSTALL_PREFIX}) + SET(CMAKE_INSTALL_PREFIX ${MINGW_INSTALL_PREFIX}) +endif() diff --git a/Toolchain/mingw32.cmake b/Toolchain/mingw32.cmake deleted file mode 100644 index f16eb51ad..000000000 --- a/Toolchain/mingw32.cmake +++ /dev/null @@ -1,22 +0,0 @@ -SET(CMAKE_SYSTEM_NAME Windows) - -FIND_PROGRAM(CMAKE_C_COMPILER NAMES i686-w64-mingw32-gcc i686-mingw32-gcc i586-mingw32-gcc i386-mingw32-gcc i586-mingw32msvc-gcc mingw32-gcc) -FIND_PROGRAM(CMAKE_CXX_COMPILER NAMES i686-w64-mingw32-g++ i686-mingw32-g++ i586-mingw32-g++ i386-mingw32-g++ i586-mingw32msvc-g++ mingw32-g++) - -FIND_PROGRAM(CMAKE_RC_COMPILER_INIT NAMES i686-w64-mingw32-windres i686-mingw32-windres i586-mingw32-windres i386-mingw32-windres mingw32-windres i586-mingw32msvc-windres windres.exe) - -FIND_PROGRAM(CMAKE_AR NAMES i686-w64-mingw32-ar i686-mingw32-ar i586-mingw32-ar i386-mingw32-ar i586-mingw32msvc-ar mingw32-ar ar.exe) - -FIND_PROGRAM(PKG_CONFIG_EXECUTABLE i686-w64-mingw32-pkg-config mingw32-pkg-config) - -IF (NOT CMAKE_FIND_ROOT_PATH) -EXECUTE_PROCESS( - COMMAND ${CMAKE_C_COMPILER} -print-sysroot - OUTPUT_VARIABLE CMAKE_FIND_ROOT_PATH -) -ENDIF(NOT CMAKE_FIND_ROOT_PATH) - - -set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) -set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) -set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) diff --git a/scripts/build_win32.sh b/scripts/build_win32.sh index 993c0273f..7e39c3b8d 100644 --- a/scripts/build_win32.sh +++ b/scripts/build_win32.sh @@ -1,17 +1,27 @@ #!/usr/bin/env bash set -e +<<<<<<< HEAD apt-get update && apt-get install -y mingw-w64 mingw-w64-tools \ default-jdk nsis libsaxonb-java curl +======= +>>>>>>> Refactoring:mingw:simplify toolchain mkdir win32 pushd win32 +<<<<<<< HEAD cmake -Dbinding/python:BOOL=FALSE -DSAMPLE_MAP=n -DBUILD_MAPTOOL=n \ -DXSLTS=windows -DCMAKE_TOOLCHAIN_FILE=../Toolchain/mingw32.cmake .. +======= +cmake -DTARGET_ARCH=i686-w64-mingw32 -DCMAKE_SYSTEM_NAME=Windows \ + -Dbinding/python:BOOL=FALSE -DSAMPLE_MAP=n -DBUILD_MAPTOOL=n \ + -DXSLTS=windows -DCMAKE_TOOLCHAIN_FILE=../Toolchain/mingw.cmake .. + +>>>>>>> Refactoring:mingw:simplify toolchain make -j $(nproc --all) make -j $(nproc --all) package popd -cp win32/*.exe $CIRCLE_ARTIFACTS/ +cp win32/*.exe $CIRCLE_ARTIFACTS/ \ No newline at end of file diff --git a/scripts/build_wince.sh b/scripts/build_wince.sh index 20eb5036e..f7950cc9e 100644 --- a/scripts/build_wince.sh +++ b/scripts/build_wince.sh @@ -1,8 +1,14 @@ -#!/bin/sh +#!/usr/bin/env bash set -e -mkdir -p wince && cd wince -cmake ../ -DCMAKE_TOOLCHAIN_FILE=Toolchain/arm-mingw32ce.cmake -DXSLTS=windows,wince -DCACHE_SIZE=10485760 -Dsvg2png_scaling:STRING=16,32 -Dsvg2png_scaling_nav:STRING=32 -Dsvg2png_scaling_flag=16 -DSAMPLE_MAP=n +mkdir -p wince +pushd wince +# +cmake \ + -DTARGET_ARCH=arm-mingw32ce -DCMAKE_SYSTEM_NAME=WindowsCEtest \ + -DCMAKE_TOOLCHAIN_FILE=../Toolchain/mingw.cmake \ + -DXSLTS=windows,wince -DCACHE_SIZE=10485760 -Dsvg2png_scaling:STRING=16,32 \ + -Dsvg2png_scaling_nav:STRING=32 -Dsvg2png_scaling_flag=16 -DSAMPLE_MAP=n .. make test -d output && rm -rf output -- cgit v1.2.1