mirror of https://github.com/vitalif/openscad
first stage of moving towards cross-build of test suite for mingw
parent
590711aa26
commit
563583ef4b
|
@ -89,9 +89,13 @@ Follow the instructions for the platform you're compiling on below.
|
||||||
* [Qt4 (4.4 - 4.8)](http://www.qt.nokia.com/)
|
* [Qt4 (4.4 - 4.8)](http://www.qt.nokia.com/)
|
||||||
* [CGAL (3.6 - 4.1)](http://www.cgal.org/)
|
* [CGAL (3.6 - 4.1)](http://www.cgal.org/)
|
||||||
* [GMP (5.x)](http://www.gmplib.org/)
|
* [GMP (5.x)](http://www.gmplib.org/)
|
||||||
|
<<<<<<< HEAD
|
||||||
|
=======
|
||||||
* [cmake (2.8.5, required by CGAL and the test framework)](http://www.cmake.org/)
|
* [cmake (2.8.5, required by CGAL and the test framework)](http://www.cmake.org/)
|
||||||
|
>>>>>>> 0d9b20dc143b2acca68496d2ce5e4fd02798289e
|
||||||
* [MPFR (3.x)](http://www.mpfr.org/)
|
* [MPFR (3.x)](http://www.mpfr.org/)
|
||||||
* [boost (1.35 - 1.53)](http://www.boost.org/)
|
* [cmake (2.8, required by CGAL and the test framework)](http://www.cmake.org/)
|
||||||
|
* [boost (1.35 - 1.55)](http://www.boost.org/)
|
||||||
* [OpenCSG (1.3.2)](http://www.opencsg.org/)
|
* [OpenCSG (1.3.2)](http://www.opencsg.org/)
|
||||||
* [GLEW (1.5.4 ->)](http://glew.sourceforge.net/)
|
* [GLEW (1.5.4 ->)](http://glew.sourceforge.net/)
|
||||||
* [Eigen (3.0 - 3.2)](http://eigen.tuxfamily.org/)
|
* [Eigen (3.0 - 3.2)](http://eigen.tuxfamily.org/)
|
||||||
|
|
|
@ -1,25 +1,57 @@
|
||||||
Running regression tests:
|
Running regression tests:
|
||||||
-------------------------
|
-------------------------
|
||||||
|
|
||||||
Prerequisites: cmake, python, ImageMagick 6.5.9.3 or newer
|
First, install the prerequisite helper programs on your system:
|
||||||
|
|
||||||
|
<<<<<<< HEAD
|
||||||
|
cmake, python, ImageMagick 6.5.9.3 or newer, diff
|
||||||
|
|
||||||
|
There are binary installer packages of these tools available for Mac,
|
||||||
|
Win, Linux, BSD, and other systems. (except maybe diff for Win)
|
||||||
|
|
||||||
|
Next, get a working qmake GUI build of the main openscad binary working.
|
||||||
|
For Windows(TM) it is easiest to get a cross-build working. See
|
||||||
|
README.md for how to do this. Lastly, install MCAD under
|
||||||
|
openscad/libraries.
|
||||||
|
=======
|
||||||
First, install MCAD.
|
First, install MCAD.
|
||||||
|
|
||||||
$ cd openscad
|
$ cd openscad
|
||||||
$ git submodule update --init
|
$ git submodule update --init
|
||||||
|
>>>>>>> 0d9b20dc143b2acca68496d2ce5e4fd02798289e
|
||||||
|
|
||||||
A) Building test environment
|
A) Building test environment
|
||||||
|
|
||||||
Linux, Mac:
|
Linux, Mac:
|
||||||
$ cd tests
|
|
||||||
$ cmake .
|
|
||||||
$ make
|
|
||||||
|
|
||||||
|
<<<<<<< HEAD
|
||||||
|
$ cd tests
|
||||||
|
$ cmake .
|
||||||
|
$ make
|
||||||
|
|
||||||
|
Windows(TM):
|
||||||
|
|
||||||
|
The Windows tests are cross-compiled from within linux, like so:
|
||||||
|
|
||||||
|
$ source ./scripts/setenv-mingw-xbuild.sh 64 # (32 for 32-bit system)
|
||||||
|
$ ./scripts/release-common.sh mingw64 tests # (mingw32 for 32-bit)
|
||||||
|
|
||||||
|
Once the package is built, install it into Windows as you would any
|
||||||
|
other program. Then start up a command prompt, and run this:
|
||||||
|
|
||||||
|
cd c:\Program Files\OpenSCAD_Tests\openscad\tests\bin
|
||||||
|
c:\python27\python.exe mingw_x_testfile.py
|
||||||
|
=======
|
||||||
Windows + MSVC:
|
Windows + MSVC:
|
||||||
|
|
||||||
The MSVC build hasn't been tested in years. See the README for pointers.
|
The MSVC build hasn't been tested in years. See the README for pointers.
|
||||||
First, gett the main GUI to build. Then, to build the tests:
|
First, gett the main GUI to build. Then, to build the tests:
|
||||||
|
>>>>>>> 0d9b20dc143b2acca68496d2ce5e4fd02798289e
|
||||||
|
|
||||||
|
This will modify paths in CTestTestfile.cmake for your Win system.
|
||||||
|
|
||||||
|
Windows + MSVC:
|
||||||
|
(This hasn't been tested since circa 2012)
|
||||||
From the QT command prompt:
|
From the QT command prompt:
|
||||||
|
|
||||||
> cd tests
|
> cd tests
|
||||||
|
@ -28,11 +60,14 @@ From the QT command prompt:
|
||||||
> cmake .
|
> cmake .
|
||||||
> nmake -f Makefile
|
> nmake -f Makefile
|
||||||
|
|
||||||
|
<<<<<<< HEAD
|
||||||
|
=======
|
||||||
Cross compiling Linux->Win32 and testing under Wine:
|
Cross compiling Linux->Win32 and testing under Wine:
|
||||||
|
|
||||||
Experimental. Please see openscad/tests/CMingw-cross-env.cmake for instructions
|
Experimental. Please see openscad/tests/CMingw-cross-env.cmake for instructions
|
||||||
on attempting to get it to work.
|
on attempting to get it to work.
|
||||||
|
|
||||||
|
>>>>>>> 0d9b20dc143b2acca68496d2ce5e4fd02798289e
|
||||||
B) Running tests
|
B) Running tests
|
||||||
|
|
||||||
$ ctest Runs tests enabled by default
|
$ ctest Runs tests enabled by default
|
||||||
|
@ -130,7 +165,7 @@ Imagemagick may have crashed while comparing the expected images to the
|
||||||
test-run generated (actual) images. You can try using the alternate
|
test-run generated (actual) images. You can try using the alternate
|
||||||
ImageMagick comparison method by by erasing CMakeCache, and re-running
|
ImageMagick comparison method by by erasing CMakeCache, and re-running
|
||||||
cmake with -DCOMPARATOR=ncc. This will enable the Normalized Cross
|
cmake with -DCOMPARATOR=ncc. This will enable the Normalized Cross
|
||||||
Comparison method.
|
Comparison method which is less accurate but won't usually crash.
|
||||||
|
|
||||||
4. Testing images fails with 'morphology not found" for ImageMagick in the log
|
4. Testing images fails with 'morphology not found" for ImageMagick in the log
|
||||||
|
|
||||||
|
@ -142,10 +177,13 @@ cmake. The comparison will be of lowered reliability.
|
||||||
"terminate called after throwing an instance of 'std::runtime_error'
|
"terminate called after throwing an instance of 'std::runtime_error'
|
||||||
what(): locale::facet::_S_create_c_locale name not valid"
|
what(): locale::facet::_S_create_c_locale name not valid"
|
||||||
|
|
||||||
Is a boost/libstdc++ bug. Fix like so:
|
Is a boost/libstdc++ bug. Fix like so before running:
|
||||||
|
|
||||||
$ export LC_MESSAGES=
|
$ export LC_MESSAGES=
|
||||||
|
|
||||||
|
<<<<<<< HEAD
|
||||||
|
6. Proprietary GL driver issues
|
||||||
|
=======
|
||||||
6. I want to build without OpenGL
|
6. I want to build without OpenGL
|
||||||
|
|
||||||
There is an unsupported way to do this, by defining NULLGL to Cmake:
|
There is an unsupported way to do this, by defining NULLGL to Cmake:
|
||||||
|
@ -158,12 +196,25 @@ Is a boost/libstdc++ bug. Fix like so:
|
||||||
This option may break in the future and require tweaking to get working again.
|
This option may break in the future and require tweaking to get working again.
|
||||||
|
|
||||||
7. Other issues
|
7. Other issues
|
||||||
|
>>>>>>> 0d9b20dc143b2acca68496d2ce5e4fd02798289e
|
||||||
|
|
||||||
The OpenSCAD User Manual has a section on buildling. Please check there
|
There are sporadic reports of problems running on remote machines with
|
||||||
for updates:
|
proprietary GL drivers. Try doing a web search for your exact error
|
||||||
|
message to see solutions others have found.
|
||||||
|
|
||||||
|
7. Other issues
|
||||||
|
|
||||||
|
The OpenSCAD User Manual Wiki has a section on buildling. Please check
|
||||||
|
there for possible updates and workarounds:
|
||||||
|
|
||||||
http://en.wikibooks.org/wiki/OpenSCAD_User_Manual
|
http://en.wikibooks.org/wiki/OpenSCAD_User_Manual
|
||||||
|
|
||||||
|
<<<<<<< HEAD
|
||||||
|
Please report build errors (after double checking the instructions) in
|
||||||
|
the github issue tracker
|
||||||
|
|
||||||
|
http://github.com/openscad/openscad/issues
|
||||||
|
=======
|
||||||
|
|
||||||
|
|
||||||
Migration away from dedicated regression tests:
|
Migration away from dedicated regression tests:
|
||||||
|
@ -184,4 +235,5 @@ These look like tests, but are not actually in use:
|
||||||
|
|
||||||
* modulecachetest
|
* modulecachetest
|
||||||
* cgalcachetest
|
* cgalcachetest
|
||||||
|
>>>>>>> 0d9b20dc143b2acca68496d2ce5e4fd02798289e
|
||||||
|
|
||||||
|
|
|
@ -784,16 +784,12 @@ function(add_cmdline_test TESTCMD_BASENAME)
|
||||||
set(CONFARG CONFIGURATIONS)
|
set(CONFARG CONFIGURATIONS)
|
||||||
set(CONFVAL ${FOUNDCONFIGS})
|
set(CONFVAL ${FOUNDCONFIGS})
|
||||||
|
|
||||||
if (MINGW_CROSS_ENV_DIR)
|
|
||||||
set( MINGW_CROSS_ARG "--mingw-cross-env" )
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# The python script cannot extract the testname when given extra parameters
|
# The python script cannot extract the testname when given extra parameters
|
||||||
if (TESTCMD_ARGS)
|
if (TESTCMD_ARGS)
|
||||||
set(FILENAME_OPTION -f ${FILE_BASENAME})
|
set(FILENAME_OPTION -f ${FILE_BASENAME})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_test(NAME ${TEST_FULLNAME} ${CONFARG} ${CONFVAL} COMMAND ${PYTHON_EXECUTABLE} ${tests_SOURCE_DIR}/test_cmdline_tool.py ${MINGW_CROSS_ARG} --comparator=${COMPARATOR} -c ${ImageMagick_convert_EXECUTABLE} -s ${TESTCMD_SUFFIX} ${EXTRA_OPTIONS} ${TESTNAME_OPTION} ${FILENAME_OPTION} ${TESTCMD_EXE} "${SCADFILE}" ${TESTCMD_ARGS})
|
add_test(NAME ${TEST_FULLNAME} ${CONFARG} ${CONFVAL} COMMAND ${PYTHON_EXECUTABLE} ${tests_SOURCE_DIR}/test_cmdline_tool.py --comparator=${COMPARATOR} -c ${ImageMagick_convert_EXECUTABLE} -s ${TESTCMD_SUFFIX} ${EXTRA_OPTIONS} ${TESTNAME_OPTION} ${FILENAME_OPTION} ${TESTCMD_EXE} "${SCADFILE}" ${TESTCMD_ARGS})
|
||||||
set_property(TEST ${TEST_FULLNAME} PROPERTY ENVIRONMENT "${CTEST_ENVIRONMENT}")
|
set_property(TEST ${TEST_FULLNAME} PROPERTY ENVIRONMENT "${CTEST_ENVIRONMENT}")
|
||||||
endif()
|
endif()
|
||||||
endforeach()
|
endforeach()
|
||||||
|
@ -955,10 +951,10 @@ file(TO_NATIVE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/test_pretty_print.py PYSRC)
|
||||||
set_target_properties(test_pretty_print PROPERTIES COMPILE_FLAGS
|
set_target_properties(test_pretty_print PROPERTIES COMPILE_FLAGS
|
||||||
"-DPYBIN=${PYTHON_EXECUTABLE} -DPYSRC=${PYSRC} -DBUILDDIR=--builddir=${CMAKE_CURRENT_BINARY_DIR}"
|
"-DPYBIN=${PYTHON_EXECUTABLE} -DPYSRC=${PYSRC} -DBUILDDIR=--builddir=${CMAKE_CURRENT_BINARY_DIR}"
|
||||||
)
|
)
|
||||||
if (MINGW_CROSS_ENV_DIR)
|
#if (MINGW_CROSS_ENV_DIR)
|
||||||
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/test_pretty_print "wine test_pretty_print.exe")
|
# file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/test_pretty_print "test_pretty_print.exe")
|
||||||
execute_process(COMMAND chmod ugo+x ${CMAKE_CURRENT_BINARY_DIR}/test_pretty_print)
|
# execute_process(COMMAND chmod ugo+x ${CMAKE_CURRENT_BINARY_DIR}/test_pretty_print)
|
||||||
endif()
|
#endif()
|
||||||
|
|
||||||
file(READ ${CMAKE_CURRENT_SOURCE_DIR}/CTestCustom.template TMP)
|
file(READ ${CMAKE_CURRENT_SOURCE_DIR}/CTestCustom.template TMP)
|
||||||
string(REPLACE __cmake_current_binary_dir__ ${CMAKE_CURRENT_BINARY_DIR} TMP ${TMP})
|
string(REPLACE __cmake_current_binary_dir__ ${CMAKE_CURRENT_BINARY_DIR} TMP ${TMP})
|
||||||
|
@ -969,18 +965,11 @@ string(REPLACE __cmake_system_name__ ${CMAKE_SYSTEM_NAME} TMP ${TMP})
|
||||||
string(REPLACE __openscad_binpath__ ${OPENSCAD_BINPATH} TMP ${TMP})
|
string(REPLACE __openscad_binpath__ ${OPENSCAD_BINPATH} TMP ${TMP})
|
||||||
|
|
||||||
set(OPENSCAD_UPLOAD_TESTS $ENV{OPENSCAD_UPLOAD_TESTS})
|
set(OPENSCAD_UPLOAD_TESTS $ENV{OPENSCAD_UPLOAD_TESTS})
|
||||||
|
set(UPLOADARG "")
|
||||||
if (OPENSCAD_UPLOAD_TESTS)
|
if (OPENSCAD_UPLOAD_TESTS)
|
||||||
set(UPLOADARG "--upload")
|
set(UPLOADARG "--upload")
|
||||||
endif()
|
endif()
|
||||||
if (UPLOADARG)
|
string(REPLACE __openscad_upload_tests__ "${UPLOADARG}" TMP ${TMP})
|
||||||
string(REPLACE __openscad_upload_tests__ ${UPLOADARG} TMP ${TMP})
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if (MINGW_CROSS_ENV_DIR)
|
|
||||||
string(REPLACE __wine__ wine TMP ${TMP})
|
|
||||||
else()
|
|
||||||
string(REPLACE __wine__ " " TMP ${TMP})
|
|
||||||
endif()
|
|
||||||
|
|
||||||
message(STATUS "creating CTestCustom.cmake")
|
message(STATUS "creating CTestCustom.cmake")
|
||||||
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/CTestCustom.cmake ${TMP})
|
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/CTestCustom.cmake ${TMP})
|
||||||
|
|
|
@ -1,31 +1,39 @@
|
||||||
#
|
#
|
||||||
# CMake Toolchain file for cross compiling OpenSCAD tests linux->mingw-win32
|
# CMake Toolchain file for cross compiling OpenSCAD tests linux->mingw-win32
|
||||||
# --------------------------------------------------------------------------
|
# --------------------------------------------------------------------------
|
||||||
#
|
|
||||||
# This will only work under linux using 'wine'. It has not been tested under
|
|
||||||
# mingw32 nor MSVC
|
|
||||||
#
|
#
|
||||||
# Prerequisites: mingw-cross-env, ImageMagick 6.5.9.3 or newer, wine
|
# This CMake Toolchain file will cross-compile the regression test
|
||||||
|
# programs for OpenSCAD, and generate a CTestTestfile.cmake
|
||||||
|
#
|
||||||
|
# The result will not be directly usable. Please see doc/testing.txt
|
||||||
|
# for complete instructions for running the regression tests under Windows(TM)
|
||||||
|
#
|
||||||
|
# Prerequisites:
|
||||||
|
#
|
||||||
|
# Please see doc/testing.txt for pre-requisites.
|
||||||
#
|
#
|
||||||
# Usage:
|
# Usage:
|
||||||
#
|
#
|
||||||
# follow the README.md to do a mingw-cross build of openscad.exe
|
# Please see doc/testing.txt for usage
|
||||||
# the setenv-mingw-xbuild.sh script will set MXEDIR
|
|
||||||
# cd openscad/tests && mkdir build-mingw32 && cd build-mingw32
|
|
||||||
# # set env variables:
|
|
||||||
# OPENSCADPATH=../../libraries # (to find MCAD for some tests)
|
|
||||||
# cmake .. -DCMAKE_TOOLCHAIN_FILE=../CMingw-cross-env.cmake \
|
|
||||||
# -DMINGW_CROSS_ENV_DIR=$MXEDIR
|
|
||||||
# make # (should proceed as normal.)
|
|
||||||
# now run 'ctest' on your *nix machine.
|
|
||||||
# The test .exe programs should run under wine
|
|
||||||
# imagemagick's "convert" comparer will be your actual linux version.
|
|
||||||
# The pretty printer won't automatically work after the tests. You have to run
|
|
||||||
# it manually by typing 'wine test_pretty_print.exe'
|
|
||||||
#
|
#
|
||||||
# to debug finding MCAD with OPENSCADPATH, try something like this:
|
# Please do not use this file directly unless you are experimenting.
|
||||||
|
# This file is typically called from release-common.sh automatically,
|
||||||
|
# not used directly by a human.
|
||||||
|
#
|
||||||
|
# Assuming you want to build 64bit:
|
||||||
#
|
#
|
||||||
# strace -f ctest -R dumptest.*use 2>&1 | grep servos.scad
|
# cd openscad
|
||||||
|
# source scripts/setenv-mingw-xbuild.sh 64
|
||||||
|
# cd openscad/tests && mkdir build-mingw64 && cd build-mingw64
|
||||||
|
# export OPENSCADPATH=../../libraries # (to find MCAD for some tests)
|
||||||
|
# cmake .. -DCMAKE_TOOLCHAIN_FILE=../CMingw-cross-env.cmake \
|
||||||
|
# -DMINGW_CROSS_ENV_DIR=$MXEDIR \
|
||||||
|
# -DMACHINE=x86_64-w64-mingw32
|
||||||
|
#
|
||||||
|
# For 32 bit, change '64' to '32' in setenv/mkdir and use this machine:
|
||||||
|
# -DMACHINE=i686-pc-mingw32
|
||||||
|
#
|
||||||
|
# make # (should proceed as normal.)
|
||||||
#
|
#
|
||||||
# See also:
|
# See also:
|
||||||
#
|
#
|
||||||
|
@ -41,7 +49,7 @@
|
||||||
# Makefile.Release generated by qmake
|
# Makefile.Release generated by qmake
|
||||||
# cmake's FindQt4.cmake & Qt4ConfigDependentSettings.cmake files
|
# cmake's FindQt4.cmake & Qt4ConfigDependentSettings.cmake files
|
||||||
# mingw-cross-env's qmake.conf and *.prl files
|
# mingw-cross-env's qmake.conf and *.prl files
|
||||||
# mingw-cross-env's pkg-config files in usr/i686-pc-mingw32/lib/pkgconfig
|
# mingw-cross-env's pkg-config files in usr/${MACHINE}/lib/pkgconfig
|
||||||
# (may have to add to env var PKG_CONFIG_PATH to find qt .pc files)
|
# (may have to add to env var PKG_CONFIG_PATH to find qt .pc files)
|
||||||
# http://www.vtk.org/Wiki/CMake:How_To_Find_Libraries
|
# http://www.vtk.org/Wiki/CMake:How_To_Find_Libraries
|
||||||
#
|
#
|
||||||
|
@ -54,45 +62,34 @@
|
||||||
# This file is actually called multiple times by cmake, so various 'if NOT set'
|
# This file is actually called multiple times by cmake, so various 'if NOT set'
|
||||||
# guards are used to keep programs from running twice.
|
# guards are used to keep programs from running twice.
|
||||||
#
|
#
|
||||||
# The test will not currently run under win32 because the ctest harness
|
|
||||||
# is created by cmake on the machine that it is called on, not on the
|
|
||||||
# machine it is targeting.
|
|
||||||
#
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Part 1. Find *nix-ImageMagick
|
# Part 1: Skip imagemagick search.
|
||||||
#
|
|
||||||
# The tests run under Wine under *nix. Therefore we need to find the
|
|
||||||
# ImageMagick comparison program on the *nix machine. It must be
|
|
||||||
# searched before the 'cross-compile' environment is setup.
|
|
||||||
#
|
#
|
||||||
|
|
||||||
if (NOT imagemagick_cross_set)
|
set( SKIP_IMAGEMAGICK TRUE )
|
||||||
find_package(ImageMagick COMPONENTS convert REQUIRED)
|
|
||||||
message(STATUS "ImageMagick convert executable found: " ${ImageMagick_convert_EXECUTABLE})
|
|
||||||
set( SKIP_IMAGEMAGICK TRUE )
|
|
||||||
set( imagemagick_cross_set )
|
|
||||||
endif()
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Part 2. cross-compiler setup
|
# Part 2. cross-compiler setup
|
||||||
#
|
#
|
||||||
|
|
||||||
|
message(STATUS "Machine: ${MACHINE}")
|
||||||
|
|
||||||
set(MINGW_CROSS_ENV_DIR $ENV{MINGW_CROSS_ENV_DIR})
|
set(MINGW_CROSS_ENV_DIR $ENV{MINGW_CROSS_ENV_DIR})
|
||||||
|
|
||||||
set(BUILD_SHARED_LIBS OFF)
|
set(BUILD_SHARED_LIBS OFF)
|
||||||
set(CMAKE_SYSTEM_NAME Windows)
|
set(CMAKE_SYSTEM_NAME Windows)
|
||||||
set(MSYS 1)
|
set(MSYS 1)
|
||||||
set(CMAKE_FIND_ROOT_PATH ${MINGW_CROSS_ENV_DIR}/usr/i686-pc-mingw32)
|
set(CMAKE_FIND_ROOT_PATH ${MINGW_CROSS_ENV_DIR}/usr/${MACHINE})
|
||||||
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
||||||
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
||||||
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
||||||
|
|
||||||
set(CMAKE_C_COMPILER ${MINGW_CROSS_ENV_DIR}/usr/bin/i686-pc-mingw32-gcc)
|
set(CMAKE_C_COMPILER ${MINGW_CROSS_ENV_DIR}/usr/bin/${MACHINE}-gcc)
|
||||||
set(CMAKE_CXX_COMPILER ${MINGW_CROSS_ENV_DIR}/usr/bin/i686-pc-mingw32-g++)
|
set(CMAKE_CXX_COMPILER ${MINGW_CROSS_ENV_DIR}/usr/bin/${MACHINE}-g++)
|
||||||
set(CMAKE_RC_COMPILER ${MINGW_CROSS_ENV_DIR}/usr/bin/i686-pc-mingw32-windres)
|
set(CMAKE_RC_COMPILER ${MINGW_CROSS_ENV_DIR}/usr/bin/${MACHINE}-windres)
|
||||||
set(QT_QMAKE_EXECUTABLE ${MINGW_CROSS_ENV_DIR}/usr/bin/i686-pc-mingw32-qmake)
|
set(QT_QMAKE_EXECUTABLE ${MINGW_CROSS_ENV_DIR}/usr/bin/${MACHINE}-qmake)
|
||||||
set(PKG_CONFIG_EXECUTABLE ${MINGW_CROSS_ENV_DIR}/usr/bin/i686-pc-mingw32-pkg-config)
|
set(PKG_CONFIG_EXECUTABLE ${MINGW_CROSS_ENV_DIR}/usr/bin/${MACHINE}-pkg-config)
|
||||||
set(CMAKE_BUILD_TYPE RelWithDebInfo)
|
set(CMAKE_BUILD_TYPE RelWithDebInfo)
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -118,14 +115,14 @@ set( GLEW_DIR ${CMAKE_FIND_ROOT_PATH} )
|
||||||
# end of QT_LIBRARIES
|
# end of QT_LIBRARIES
|
||||||
#
|
#
|
||||||
|
|
||||||
set(QT_QMAKE_EXECUTABLE ${MINGW_CROSS_ENV_DIR}/usr/bin/i686-pc-mingw32-qmake)
|
set(QT_QMAKE_EXECUTABLE ${MINGW_CROSS_ENV_DIR}/usr/bin/${MACHINE}-qmake)
|
||||||
set(QT_MOC_EXECUTABLE ${MINGW_CROSS_ENV_DIR}/usr/bin/i686-pc-mingw32-moc)
|
set(QT_MOC_EXECUTABLE ${MINGW_CROSS_ENV_DIR}/usr/bin/${MACHINE}-moc)
|
||||||
set(QT_UIC_EXECUTABLE ${MINGW_CROSS_ENV_DIR}/usr/bin/i686-pc-mingw32-uic)
|
set(QT_UIC_EXECUTABLE ${MINGW_CROSS_ENV_DIR}/usr/bin/${MACHINE}-uic)
|
||||||
|
|
||||||
function(mingw_cross_env_find_qt)
|
function(mingw_cross_env_find_qt)
|
||||||
# called from CMakeLists.txt
|
# called from CMakeLists.txt
|
||||||
set(PKGC_DEST ${MINGW_CROSS_ENV_DIR}/usr/i686-pc-mingw32/lib/pkgconfig)
|
set(PKGC_DEST ${MINGW_CROSS_ENV_DIR}/usr/${MACHINE}/lib/pkgconfig)
|
||||||
set(QT_PKGC_SRC ${MINGW_CROSS_ENV_DIR}/usr/i686-pc-mingw32/qt/lib/pkgconfig/)
|
set(QT_PKGC_SRC ${MINGW_CROSS_ENV_DIR}/usr/${MACHINE}/qt/lib/pkgconfig/)
|
||||||
file(COPY ${QT_PKGC_SRC} DESTINATION ${PKGC_DEST} FILES_MATCHING PATTERN "*.pc")
|
file(COPY ${QT_PKGC_SRC} DESTINATION ${PKGC_DEST} FILES_MATCHING PATTERN "*.pc")
|
||||||
|
|
||||||
find_package( PkgConfig )
|
find_package( PkgConfig )
|
||||||
|
|
|
@ -154,12 +154,7 @@ def run_test(testname, cmd, args):
|
||||||
outfile = open(outputname, "wb")
|
outfile = open(outputname, "wb")
|
||||||
|
|
||||||
try:
|
try:
|
||||||
if os.path.isfile(cmd+'.exe') and options.mingw_cross_env:
|
cmdline = [cmd] + args + [outputname]
|
||||||
cmdline = ['wine']+[cmd+'.exe'] + args + [outputname]
|
|
||||||
elif cmd[-4:].lower() == '.exe' and options.mingw_cross_env:
|
|
||||||
cmdline = ['wine']+[cmd] + args + [outputname]
|
|
||||||
else:
|
|
||||||
cmdline = [cmd] + args + [outputname]
|
|
||||||
print cmdline
|
print cmdline
|
||||||
proc = subprocess.Popen(cmdline, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
proc = subprocess.Popen(cmdline, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
||||||
errtext = proc.communicate()[1]
|
errtext = proc.communicate()[1]
|
||||||
|
@ -192,12 +187,11 @@ def usage():
|
||||||
print >> sys.stderr, " -t, --test=<name> Specify test name instead of deducting it from the argument (defaults to basename <exe>)"
|
print >> sys.stderr, " -t, --test=<name> Specify test name instead of deducting it from the argument (defaults to basename <exe>)"
|
||||||
print >> sys.stderr, " -f, --file=<name> Specify test file instead of deducting it from the argument (default to basename <first arg>)"
|
print >> sys.stderr, " -f, --file=<name> Specify test file instead of deducting it from the argument (default to basename <first arg>)"
|
||||||
print >> sys.stderr, " -c, --convexec=<name> Path to ImageMagick 'convert' executable"
|
print >> sys.stderr, " -c, --convexec=<name> Path to ImageMagick 'convert' executable"
|
||||||
print >> sys.stderr, " -x, --mingw-cross-env Mingw-cross-env cross compilation"
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
# Handle command-line arguments
|
# Handle command-line arguments
|
||||||
try:
|
try:
|
||||||
opts, args = getopt.getopt(sys.argv[1:], "gs:e:c:t:f:m:x", ["generate", "convexec=", "suffix=", "expected_dir=", "test=", "file=", "comparator=", "mingw-cross-env"])
|
opts, args = getopt.getopt(sys.argv[1:], "gs:e:c:t:f:m:x", ["generate", "convexec=", "suffix=", "expected_dir=", "test=", "file=", "comparator="])
|
||||||
except getopt.GetoptError, err:
|
except getopt.GetoptError, err:
|
||||||
usage()
|
usage()
|
||||||
sys.exit(2)
|
sys.exit(2)
|
||||||
|
@ -224,8 +218,6 @@ if __name__ == '__main__':
|
||||||
options.convert_exec = os.path.normpath( a )
|
options.convert_exec = os.path.normpath( a )
|
||||||
elif o in ("-m", "--comparator"):
|
elif o in ("-m", "--comparator"):
|
||||||
options.comparator = a
|
options.comparator = a
|
||||||
elif o in ("-x", "--mingw-cross-env"):
|
|
||||||
options.mingw_cross_env = True
|
|
||||||
|
|
||||||
# <cmdline-tool> and <argument>
|
# <cmdline-tool> and <argument>
|
||||||
if len(args) < 2:
|
if len(args) < 2:
|
||||||
|
|
Loading…
Reference in New Issue