(resending because my latest mails do not seem to reach the list)

On 14/05/2012 12:58, Loaden wrote:
Hi, kb, could you share us what you using of the build script? or command?

Absolutely! See attachments.


 > Please don't ask where I come from, It's a shame!

Son, Visual Basic is nothing to be ashamed of :)

#!/usr/bin/env bash

#
#Attention: Please set SOURCE_DIR, BUILD_DIR and INSTALL_PREFIX below
#           to sensible values before running!
#

#
#Tip: Add these to reduce build-time:
#
#            -nomake tests \
#            -nomake demos \
#            -nomake examples \
#

#
#NOTE: Changes to Qt 5 sources not yet submitted to upstream:
#
#  $SOURCE_DIR/src/plugins/platforms/windows/windows.pro
#     Broaden "win32-g++: LIBS" platform scope to "win32-g++*: LIBS"
#     this also brings it in line with the special-casing "configure" does.
#     Warning: Afaict scope resolution using wildcards is undocumented.
#

#
#Note: Changes to MinGW install on Debian 6 not yet submitted to upstream:
#
#
#  /usr/i586-mingw32msvc/include/winerror.h":
#  +define CO_E_NOT_SUPPORTED ((HRESULT)0x80004021L)
#
#  /usr/i586-mingw32msvc/include/sspi.h
#  typedef struct _SECURITY_FUNCTION_TABLEW 
#  -INITIALIZE_SECURITY_CONTEXT_FN_A InitializeSecurityContextA
#  +INITIALIZE_SECURITY_CONTEXT_FN_W InitializeSecurityContextW
#

#
#HACK:
#  To get around a build problem when doing out-of-tree building,
#  add two symlinks in 
"$BUILD_DIR/examples/widgets/validators/.uic/release-shared"
#  ledwidget.h -> "$SOURCE_DIR/examples/widgets/validators/ledwidget.h"
#  localeselector.h -> 
"$SOURCE_DIR/examples/widgets/validators/localeselector.h"
#
#  Then restart the build (run make in $BUILD_DIR)
#

set -o errexit
set -o nounset

SOURCE_DIR="/home/_cruft/kb/dev/qt"
BUILD_DIR="/home/_cruft/kb/build-cross-i586-mingw32msvc/qt"
INSTALL_PREFIX="/home/_cruft/kb/installed-cross-i586-mingw32msvc"
#Warning: mkspec MUST start with "win32-g++". The Qt configure script checks
#         for this prefix to turn on mingw specific stuff.
MKSPEC="win32-g++-xLinuxToWin32"

cp -r "$MKSPEC" "$SOURCE_DIR/mkspecs/"

mkdir -p "$BUILD_DIR"
cd "$BUILD_DIR"

"$SOURCE_DIR/configure" -confirm-license \
            -opensource \
            -prefix "$INSTALL_PREFIX" \
            -xplatform "$MKSPEC" \
            -no-exceptions \
            -no-xcb \
            -no-eglfs \
            -silent \
            -release \
            -no-pch \
            -nomake docs \
            -nomake translations

cd "$BUILD_DIR"
make

#
# qmake configuration for win32-g++
#
# Written by kb for MinGW on Debian
#

MAKEFILE_GENERATOR      = MINGW
TEMPLATE                = app
CONFIG                  += qt warn_on release link_prl copy_dir_files 
debug_and_release debug_and_release_target precompile_header
QT                      += core gui
DEFINES                 += UNICODE QT_LARGEFILE_SUPPORT
QMAKE_COMPILER_DEFINES  += __GNUC__ WIN32

QMAKE_EXT_OBJ           = .o
QMAKE_EXT_RES           = _res.o

QMAKE_CC                = i586-mingw32msvc-gcc
QMAKE_LEX               = flex
QMAKE_LEXFLAGS          =
QMAKE_YACC              = byacc
QMAKE_YACCFLAGS         = -d
QMAKE_CFLAGS            =
QMAKE_CFLAGS_DEPS       = -M
QMAKE_CFLAGS_WARN_ON    = -Wall
QMAKE_CFLAGS_WARN_OFF   = -w
QMAKE_CFLAGS_RELEASE    = -O2
QMAKE_CFLAGS_DEBUG      = -g
QMAKE_CFLAGS_YACC       = -Wno-unused -Wno-parentheses

QMAKE_CXX               = i586-mingw32msvc-g++
#Enable mmx to make mmintrin.h platform header happy (tests __MMX__ flag)
#TBD: enable 3Dnow so mm3dnow.h does not silently skip everything because it 
tests for __3dNOW__
#Note: Specifying architecture "pentium-m" turns on MMX, SSE and SSE2 support 
in gcc.
QMAKE_CXXFLAGS          = $$QMAKE_CFLAGS -march=pentium-m -mfpmath=sse
QMAKE_CXXFLAGS_DEPS     = $$QMAKE_CFLAGS_DEPS
QMAKE_CXXFLAGS_WARN_ON  = $$QMAKE_CFLAGS_WARN_ON
QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
QMAKE_CXXFLAGS_RELEASE  = $$QMAKE_CFLAGS_RELEASE
QMAKE_CXXFLAGS_DEBUG    = $$QMAKE_CFLAGS_DEBUG
QMAKE_CXXFLAGS_YACC     = $$QMAKE_CFLAGS_YACC
QMAKE_CXXFLAGS_THREAD   = $$QMAKE_CFLAGS_THREAD
QMAKE_CXXFLAGS_RTTI_ON  = -frtti
QMAKE_CXXFLAGS_RTTI_OFF = -fno-rtti
QMAKE_CXXFLAGS_EXCEPTIONS_ON = -fexceptions -mthreads
QMAKE_CXXFLAGS_EXCEPTIONS_OFF = -fno-exceptions

QMAKE_INCDIR            = /usr/i586-mingw32msvc/include/
QMAKE_INCDIR           += 
/home/_cruft/kb/installed-cross-i586-mingw32msvc/include
QMAKE_LIBDIR           += /home/_cruft/kb/installed-cross-i586-mingw32msvc/lib
INCLUDEPATH            += 
/home/_cruft/kb/installed-cross-i586-mingw32msvc/include
LIBS                   += -L/home/_cruft/kb/installed-cross-i586-mingw32msvc/lib
QMAKE_INCDIR_QT         = 
/home/_cruft/kb/installed-cross-i586-mingw32msvc/qt/include
QMAKE_LIBDIR_QT         = 
/home/_cruft/kb/installed-cross-i586-mingw32msvc/qt/lib

QMAKE_RUN_CC            = $(CC) -c $(CFLAGS) $(INCPATH) -o $obj $src
QMAKE_RUN_CC_IMP        = $(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<
QMAKE_RUN_CXX           = $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $obj $src
QMAKE_RUN_CXX_IMP       = $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<

QMAKE_LINK              = i586-mingw32msvc-g++
QMAKE_LINK_C            = i586-mingw32msvc-gcc
QMAKE_LFLAGS            =
QMAKE_LFLAGS_EXCEPTIONS_ON = -mthreads
QMAKE_LFLAGS_EXCEPTIONS_OFF =
QMAKE_LFLAGS_RELEASE    = -Wl,-s
QMAKE_LFLAGS_DEBUG      =
QMAKE_LFLAGS_CONSOLE    = -Wl,-subsystem,console
QMAKE_LFLAGS_WINDOWS    = -Wl,-subsystem,windows
QMAKE_LFLAGS_DLL        = -shared
QMAKE_LINK_OBJECT_MAX   = 10
QMAKE_LINK_OBJECT_SCRIPT = object_script
QMAKE_PREFIX_STATICLIB  =
QMAKE_EXTENSION_STATICLIB = lib


QMAKE_LIBS              =
QMAKE_LIBS_CORE         = -lole32 -luuid -lws2_32 -ladvapi32 -lshell32 -luser32 
-lkernel32
#Needed to add zlib (is this a bug?):
QMAKE_LIBS_GUI          = -lgdi32 -lcomdlg32 -loleaut32 -limm32 -lwinmm 
-lwinspool -lws2_32 -lole32 -luuid -luser32 -ladvapi32 -lzlib
#Needed to add zlib (is this a bug?):
QMAKE_LIBS_NETWORK      = -lws2_32 -lzlib
QMAKE_LIBS_OPENGL       = -lglu32 -lopengl32 -lgdi32 -luser32
QMAKE_LIBS_COMPAT       = -ladvapi32 -lshell32 -lcomdlg32 -luser32 -lgdi32 
-lws2_32
QMAKE_LIBS_QT_ENTRY     = -lmingw32 -lqtmain

MINGW_IN_SHELL          = 1
QMAKE_DIR_SEP           = /
#QMAKE_QMAKE            ~= s,\\\\,/,
QMAKE_COPY              = cp
QMAKE_COPY_DIR          = cp -r
QMAKE_MOVE              = mv
QMAKE_DEL_FILE          = rm
QMAKE_MKDIR             = mkdir -p
QMAKE_DEL_DIR           = rmdir
QMAKE_SYMBOLIC_LINK     = ln -s
QMAKE_CHK_DIR_EXISTS    = test -d

#We need these while building Qt itself (i.e. before Qt is installed)
#so we use the copies in the build tree directly:
QMAKE_MOC               = 
/home/_cruft/kb/build-cross-i586-mingw32msvc/qt/bin/moc
#QMAKE_UIC              = 
/home/_cruft/kb/build-cross-i586-mingw32msvc/qt/bin/uic
QMAKE_IDC               = 
/home/_cruft/kb/build-cross-i586-mingw32msvc/qt/bin/idc

#QMAKE_MOC              = $$[QT_INSTALL_BINS]$${DIR_SEPARATOR}moc
#QMAKE_UIC              = $$[QT_INSTALL_BINS]$${DIR_SEPARATOR}uic
#QMAKE_IDC              = $$[QT_INSTALL_BINS]$${DIR_SEPARATOR}idc

QMAKE_IDL               = midl
QMAKE_LIB               = i586-mingw32msvc-ar -ru
QMAKE_RC                = i586-mingw32msvc-windres
QMAKE_ZIP               = zip -r -9

QMAKE_STRIP             = i586-mingw32msvc-strip
QMAKE_STRIPFLAGS_LIB    += --strip-unneeded
#PKG_CONFIG              = i686-pc-mingw32-pkg-config

load(qt_config)

/****************************************************************************
**
** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
** All rights reserved.
** Contact: Nokia Corporation ([email protected])
**
** This file is part of the qmake spec of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL$
** GNU Lesser General Public License Usage
** This file may be used under the terms of the GNU Lesser General Public
** License version 2.1 as published by the Free Software Foundation and
** appearing in the file LICENSE.LGPL included in the packaging of this
** file. Please review the following information to ensure the GNU Lesser
** General Public License version 2.1 requirements will be met:
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** In addition, as a special exception, Nokia gives you certain additional
** rights. These rights are described in the Nokia Qt LGPL Exception
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU General
** Public License version 3.0 as published by the Free Software Foundation
** and appearing in the file LICENSE.GPL included in the packaging of this
** file. Please review the following information to ensure the GNU General
** Public License version 3.0 requirements will be met:
** http://www.gnu.org/copyleft/gpl.html.
**
** Other Usage
** Alternatively, this file may be used in accordance with the terms and
** conditions contained in a signed written agreement between you and Nokia.
**
**
**
**
**
** $QT_END_LICENSE$
**
****************************************************************************/

#ifndef QPLATFORMDEFS_H
#define QPLATFORMDEFS_H

#ifdef UNICODE
#ifndef _UNICODE
#define _UNICODE
#endif
#endif

// Get Qt defines/settings

#include "qglobal.h"

#include <tchar.h>
#include <io.h>
#include <direct.h>
#include <stdio.h>
#include <fcntl.h>
#include <errno.h>
#include <sys/stat.h>
#include <stdlib.h>
#include <qt_windows.h>
#include <limits.h>

#if !defined(_WIN32_WINNT) || (_WIN32_WINNT-0 < 0x0500)
typedef enum {
    NameUnknown		  = 0, 
    NameFullyQualifiedDN  = 1, 
    NameSamCompatible	  = 2, 
    NameDisplay		  = 3, 
    NameUniqueId	  = 6, 
    NameCanonical	  = 7, 
    NameUserPrincipal	  = 8, 
    NameCanonicalEx	  = 9, 
    NameServicePrincipal  = 10, 
    NameDnsDomain	  = 12
} EXTENDED_NAME_FORMAT, *PEXTENDED_NAME_FORMAT;
#endif

#define Q_FS_FAT
#ifdef QT_LARGEFILE_SUPPORT
#define QT_STATBUF		struct _stati64		// non-ANSI defs
#define QT_STATBUF4TSTAT	struct _stati64		// non-ANSI defs
#define QT_STAT			::_stati64
#define QT_FSTAT		::_fstati64
#else
#define QT_STATBUF		struct _stat		// non-ANSI defs
#define QT_STATBUF4TSTAT	struct _stat		// non-ANSI defs
#define QT_STAT			::_stat
#define QT_FSTAT		::_fstat
#endif
#define QT_STAT_REG		_S_IFREG
#define QT_STAT_DIR		_S_IFDIR
#define QT_STAT_MASK		_S_IFMT
#if defined(_S_IFLNK)
#  define QT_STAT_LNK		_S_IFLNK
#endif
#define QT_FILENO		_fileno
#define QT_OPEN			::_open
#define QT_CLOSE		::_close
#ifdef QT_LARGEFILE_SUPPORT
#define QT_LSEEK		::_lseeki64
#ifndef UNICODE
#define QT_TSTAT		::_stati64
#else
#define QT_TSTAT		::_wstati64
#endif
#else
#define QT_LSEEK		::_lseek
#ifndef UNICODE
#define QT_TSTAT		::_stat
#else
#define QT_TSTAT		::_wstat
#endif
#endif
#define QT_READ			::_read
#define QT_WRITE		::_write
#define QT_ACCESS		::_access
#define QT_GETCWD		::_getcwd
#define QT_CHDIR		::_chdir
#define QT_MKDIR		::_mkdir
#define QT_RMDIR		::_rmdir
#define QT_OPEN_LARGEFILE       0
#define QT_OPEN_RDONLY		_O_RDONLY
#define QT_OPEN_WRONLY		_O_WRONLY
#define QT_OPEN_RDWR		_O_RDWR
#define QT_OPEN_CREAT		_O_CREAT
#define QT_OPEN_TRUNC		_O_TRUNC
#define QT_OPEN_APPEND		_O_APPEND
#if defined(O_TEXT)
# define QT_OPEN_TEXT		_O_TEXT
# define QT_OPEN_BINARY		_O_BINARY
#endif

#include "../common/c89/qplatformdefs.h"

#ifdef QT_LARGEFILE_SUPPORT
#undef QT_FSEEK
#undef QT_FTELL
#undef QT_OFF_T

#define QT_FSEEK                ::fseeko64
#define QT_FTELL                ::ftello64
#define QT_OFF_T                off64_t
#endif

#define QT_SIGNAL_ARGS		int

#define QT_VSNPRINTF		::_vsnprintf
#define QT_SNPRINTF		::_snprintf

# define F_OK	0
# define X_OK	1
# define W_OK	2
# define R_OK	4


#endif // QPLATFORMDEFS_H

_______________________________________________
Development mailing list
[email protected]
http://lists.qt-project.org/mailman/listinfo/development

Reply via email to