-
+###
+#
MAKEFLAGS_GENERAL="-j6"
BUILD_TYPE="Relwithdebinfo"
CMAKE=/usr/bin/cmake
+CMAKE_APPENDFLAG=""
+## CLANG
CCMAKE_CC=clang-3.9
CCMAKE_CXX=clang++-3.9
-fvectorize -funroll-loops \
-msse -msse2 \
"
-
-MAKEFLAGS_CXX="-g -O3 -std=c++03 ${MAKEFLAGS_BASE} -flto -DNDEBUG"
-MAKEFLAGS_CC="-g -O3 -std=c11 ${MAKEFLAGS_BASE} -flto -DNDEBUG"
-MAKEFLAGS_LIB_CXX="-flto -g -O3 -std=c++03 ${MAKEFLAGS_BASE} -DNDEBUG"
-MAKEFLAGS_LIB_CC="-flto -g -O3 -std=c11 ${MAKEFLAGS_BASE} -DNDEBUG"
+MAKEFLAGS_CXX_BASE="-g -O3 -std=c++03 ${MAKEFLAGS_BASE} -flto -DNDEBUG"
+MAKEFLAGS_CC_BASE="-g -O3 -std=c11 ${MAKEFLAGS_BASE} -flto -DNDEBUG"
+MAKEFLAGS_LINK_BASE="-g -O3 ${MAKEFLAGS_BASE} -flto"
+CMAKE_APPENDFLAG="${CMAKE_APPENDFLAG} -DCMAKE_AR:STRING=llvm-ar-3.9 -DCMAKE_NM:STRING=llvm-nm-3.9 -DCMAKE_RANLIB:STRING=llvm-ranlib-3.9"
+CMAKE_APPENDFLAG="${CMAKE_APPENDFLAG} -DCMAKE_AS:STRING=llvm-as-3.9"
+## GCC
#CCMAKE_CC=gcc-6
#CCMAKE_CXX=g++-6
#
# -floop-nest-optimize \
# -msse -msse2 \
# "
-#MAKEFLAGS_CXX="-g -O2 ${MAKEFLAGS_BASE} -flto -DNDEBUG"
-#MAKEFLAGS_CC="-g -O2 ${MAKEFLAGS_BASE} -flto -DNDEBUG"
-#MAKEFLAGS_LIB_CXX="-flto -g -O2 ${MAKEFLAGS_BASE} -DNDEBUG"
-#MAKEFLAGS_LIB_CC="-flto -g -O2 ${MAKEFLAGS_BASE} -DNDEBUG"
+#MAKEFLAGS_CXX_BASE="-g -ggdb -O2 ${MAKEFLAGS_BASE} -flto -ffat-lto-objects -DNDEBUG"
+#MAKEFLAGS_CC_BASE="-g -ggdb -O2 ${MAKEFLAGS_BASE} -flto -ffat-lto-objects -DNDEBUG"
+#MAKEFLAGS_LINK_BASE="-g -ggdb -O2 ${MAKEFLAGS_BASE} -flto -fwhole-program"
+#CMAKE_APPENDFLAG="${CMAKE_APPENDFLAG} -DCMAKE_AR:STRING=gcc-ar-6 -DCMAKE_NM:STRING=gcc-nm-6 -DCMAKE_RANLIB:STRING=gcc-ranlib-6"
+#################
+#
+#
+MAKEFLAGS_CXX="${MAKEFLAGS_CXX_BASE}"
+MAKEFLAGS_CC="${MAKEFLAGS_CC_BASE}"
+MAKEFLAGS_LIB_CXX="${MAKEFLAGS_CXX_BASE}"
+MAKEFLAGS_LIB_CC="${MAKEFLAGS_CC_BASE}"
+CMAKE_LINKFLAG="-g -O3 ${MAKEFLAGS_LINK_BASE}"
+CMAKE_DLL_LINKFLAG="-g -O3 ${MAKEFLAGS_LINK_BASE}"
-CMAKE_APPENDFLAG="-DUSE_MOVIE_SAVER=ON -DUSE_MOVIE_LOADER=ON"
+###################
+#
+#
+CMAKE_APPENDFLAG="${CMAKE_APPENDFLAG} -DUSE_MOVIE_SAVER=ON -DUSE_MOVIE_LOADER=ON"
CMAKE_APPENDFLAG="${CMAKE_APPENDFLAG} -DLIBAV_ROOT_DIR=/usr/local/ffmpeg-3.1.1"
CMAKE_APPENDFLAG="${CMAKE_APPENDFLAG} -DQT5_ROOT_PATH=/opt/Qt5.3.2/5.3/gcc_64"
-#CMAKE_APPENDFLAG="${CMAKE_APPENDFLAG} -DCMAKE_AR:STRING=gcc-ar-6 -DCMAKE_NM:STRING=gcc-nm-6 -DCMAKE_RANLIB:STRING=gcc-ranlib-6"
-
-CMAKE_APPENDFLAG="${CMAKE_APPENDFLAG} -DCMAKE_AR:STRING=llvm-ar-3.9 -DCMAKE_NM:STRING=llvm-nm-3.9 -DCMAKE_RANLIB:STRING=llvm-ranlib-3.9"
-CMAKE_APPENDFLAG="${CMAKE_APPENDFLAG} -DCMAKE_AS:STRING=llvm-asr-3.9"
-
-
-
-CMAKE_LINKFLAG="-g -O3 ${MAKEFLAGS_BASE}"
-CMAKE_DLL_LINKFLAG="-g -O3 ${MAKEFLAGS_BASE}"
-
LIB_INSTALL="/usr/local/lib/x86_64-linux-gnu/"
#LIB_INSTALL="/usr/local/lib/"
#LIB_INSTALL="/usr/lib/x86_64-linux-gnu/"
MAKEFLAGS_LIB_CXX="-O3 ${MAKEFLAGS_BASE} -DNDEBUG"
MAKEFLAGS_LIB_CC="-O3 ${MAKEFLAGS_BASE} -DNDEBUG"
-#MAKEFLAGS_CXX="-O0 -flto -DNDEBUG"
-#MAKEFLAGS_CC="-O0 -flto -DNDEBUG"
+#MAKEFLAGS_LIB_CXX="-O0 -flto -DNDEBUG"
+#MAKEFLAGS_LIB_CC="-O0 -flto -DNDEBUG"
-MAKEFLAGS_GENERAL="-j4"
+MAKEFLAGS_GENERAL="-j3"
#CMAKE_LINKFLAG="-DCMAKE_EXE_LINKER_FLAGS:STRING=-s -O3 -flto ${MAKEFLAGS_BASE} -fwhole-program -static-libgcc -static-libstdc++"
CMAKE_LINKFLAG="-DCMAKE_EXE_LINKER_FLAGS:STRING=-s -static-libgcc -static-libstdc++"
#CMAKE=/usr/bin/cmake
#TOOLCHAIN_SCRIPT="../../cmake/toolchain_mingw_cross_linux.cmake"
+#TOOLCHAIN_SCRIPT="../../cmake/toolchain_win32_cross_linux_llvm.cmake"
BUILD_TYPE="Release"
-#MAKEFLAGS_BASE="-fvect-cost-model=dynamic -ftree-vectorize \
-# -ftree-loop-distribute-patterns \
-# -ftree-loop-optimize -ftree-loop-if-convert-stores \
-# -fbranch-probabilities -fbranch-target-load-optimize \
-# -fselective-scheduling -fsel-sched-pipelining -fsel-sched-pipelining-outer-loops \
-# -funroll-loops \
-# -fgraphite-identity \
-# -floop-nest-optimize \
-# "
+## MinGW GCC
MAKEFLAGS_BASE="-fvect-cost-model=dynamic -ftree-vectorize \
-ftree-loop-optimize -ftree-loop-if-convert-stores \
-fselective-scheduling -fsel-sched-pipelining -fsel-sched-pipelining-outer-loops \
+ -funroll-loops \
+ -floop-nest-optimize \
-msse -msse2 -mfpmath=sse"
-#MAKEFLAGS_BASE="-fvect-cost-model=dynamic -ftree-vectorize \
-# -ftree-loop-optimize -ftree-loop-if-convert-stores \
-# "
-
-MAKEFLAGS_CXX="-O2 ${MAKEFLAGS_BASE} -DNDEBUG"
-MAKEFLAGS_CC="-O2 ${MAKEFLAGS_BASE} -DNDEBUG"
-#MAKEFLAGS_CXX="-O2 -flto -ffat-lto-objects -DNDEBUG"
-#MAKEFLAGS_CC="-O2 -flto -ffat-lto-objects -DNDEBUG"
-
-MAKEFLAGS_LIB_CXX="-O2 ${MAKEFLAGS_BASE} -DNDEBUG"
-MAKEFLAGS_LIB_CC="-O2 ${MAKEFLAGS_BASE} -DNDEBUG"
-#MAKEFLAGS_LIB_CXX="-O2 -flto -ffat-lto-objects -DNDEBUG"
-#MAKEFLAGS_LIB_CC="-O2 -flto -ffat-lto-objects -DNDEBUG"
-
-MAKEFLAGS_GENERAL="-j2"
-
-#CMAKE_LINKFLAG="-static-libstdc++ -static-libgcc"
-CMAKE_LINKFLAG="-s"
-CMAKE_APPENDFLAG="-DUSE_QT5_4_APIS=ON -DUSE_MOVIE_LOADER=ON -DUSE_MOVIE_SAVER=ON"
-#CMAKE_APPENDFLAG="-DCMAKE_AR:STRING=i686-w64-mingw32-gcc-ar \
-# -DCMAKE_LD:STRING=i686-w64-mingw32-gcc-ld \
-# -DCMAKE_NM:STRING=i686-w64-mingw32-gcc-nm \
-# -DCMAKE_RANLIB:STRING=i686-w64-mingw32-gcc-ranlib \
+
+MAKEFLAGS_BASE2="-flto -O3 ${MAKEFLAGS_BASE} -DNDEBUG"
+#MAKEFLAGS_BASE2="-g -ggdb -DNDEBUG"
+
+MAKEFLAGS_CXX="${MAKEFLAGS_BASE2}"
+MAKEFLAGS_CC="${MAKEFLAGS_BASE2}"
+MAKEFLAGS_LIB_CXX="${MAKEFLAGS_BASE2}"
+MAKEFLAGS_LIB_CC="${MAKEFLAGS_BASE2}"
+
+MAKEFLAGS_LINK_BASE="-s ${MAKEFLAGS_BASE2}"
+#MAKEFLAGS_LINK_BASE="-g -ggdb ${MAKEFLAGS_BASE2}"
+CMAKE_LINKFLAG="${MAKEFLAGS_LINK_BASE}"
+CMAKE_DLL_LINKFLAG="${MAKEFLAGS_LINK_BASE}"
+
+CMAKE_APPENDFLAG="-DUSE_QT5_4_APIS=ON -DUSE_MOVIE_LOADER=ON \
+ -DUSE_MOVIE_SAVER=ON \
+ -DCMAKE_AR:STRING=i686-w64-mingw32-gcc-ar \
+ -DCMAKE_LD:STRING=i686-w64-mingw32-gcc-ld \
+ -DCMAKE_NM:STRING=i686-w64-mingw32-gcc-nm \
+ -DCMAKE_RANLIB:STRING=i686-w64-mingw32-gcc-ranlib \
+ "
+
+## LLVM
+#MAKEFLAGS_BASE="-target i686-w64-mingw32"
+#CMAKE_APPENDFLAG="-DUSE_QT5_4_APIS=ON -DUSE_MOVIE_LOADER=ON \
+# -DUSE_MOVIE_SAVER=ON \
+# -DCMAKE_AR:STRING=llvm-ar-3.9 \
+# -DCMAKE_LD:STRING=llvm-ld-3.9 \
+# -DCMAKE_NM:STRING=llvm-nm-3.9 \
+# -DCMAKE_RANLIB:STRING=llvm-ranlib-3.9 \
# "
+#MAKEFLAGS_CXX="-flto -O2 ${MAKEFLAGS_BASE} -DNDEBUG"
+#MAKEFLAGS_CC="-flto -O2 ${MAKEFLAGS_BASE} -DNDEBUG"
+#MAKEFLAGS_LIB_CXX="-flto -O2 ${MAKEFLAGS_BASE} -DNDEBUG"
+#MAKEFLAGS_LIB_CC="-flto -O2 ${MAKEFLAGS_BASE} -DNDEBUG"
+#CMAKE_LINKFLAG="-s -flto"
+#CMAKE_DLL_LINKFLAG="-s -flto"
+#CMAKE_LINKFLAG="-g -ggdb"
+#CMAKE_DLL_LINKFLAG="-g -ggdb"
CMAKE_APPENDFLAG="${CMAKE_APPENDFLAG} -DLIBAV_ROOT_DIR=/usr/local/i586-mingw-msvc/ffmpeg-3.1.1"
+MAKEFLAGS_GENERAL="-j5"
--- /dev/null
+# the name of the target operating system
+SET(CMAKE_SYSTEM_NAME Windows)
+
+# which compilers to use for C and C++
+SET(CMAKE_C_COMPILER clang-3.9)
+SET(CMAKE_CXX_COMPILER clang++-3.9)
+SET(CMAKE_RC_COMPILER i686-w64-mingw32-windres)
+SET(CMAKE_AR llvm-ar-3.9)
+
+#set(CMAKE_EXE_LINKER_FLAGS "-static-libgcc -static-libstdc++")
+#set(CMAKE_EXE_LINKER_FLAGS "-static-libstdc++")
+set(CMAKE_EXE_LINKER_FLAGS "-target i686-w64-mingw32 -flto")
+
+#SET(CMAKE_C_ARCHIVE_CREATE "<CMAKE_AR> qcs <TARGET> --plugin==$(i686-264-mingw32-gcc --print-file-name=liblto_plugin.so) <LINK_FLAGS> <OBJECTS>")
+#SET(CMAKE_C_ARCHIVE_FINISH true)
+#SET(CMAKE_CXX_ARCHIVE_CREATE "<CMAKE_AR> qcs <TARGET> --plugin==$(i686-264-mingw32-gcc --print-file-name=liblto_plugin.so) <LINK_FLAGS> <OBJECTS>")
+#SET(CMAKE_CXX_ARCHIVE_FINISH true)
+
+set(LIBAV_ROOT_DIR "/usr/local/i586-mingw-msvc/ffmpeg-3.1.1")
+
+# here is the target environment located
+set(USE_SDL2 ON)
+if(USE_SDL2)
+ SET(CMAKE_FIND_ROOT_PATH /usr/i686-w64-mingw32
+ /usr/local/i586-mingw-msvc
+ /usr/local/i586-mingw-msvc/SDL2/i686-w64-mingw32
+ /usr/local/i586-mingw-msvc/5.7/mingw_611
+# /usr/local/i586-mingw-msvc/5.5/mingw_530_win32
+ )
+else()
+ SET(CMAKE_FIND_ROOT_PATH /usr/i686-w64-mingw32
+ /usr/local/i586-mingw-msvc
+ /usr/local/i586-mingw-msvc/SDL1/
+ /usr/local/i586-mingw-msvc/5.7/mingw_611
+# /usr/local/i586-mingw-msvc/5.5/mingw_530_win32
+ )
+endif()
+SET(CSP_CROSS_BUILD 1)
+
+# adjust the default behaviour of the FIND_XXX() commands:
+# search headers and libraries in the target environment, search
+# programs in the host environment
+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(LIBAV_INCLUDE_DIRS /usr/local/i586-mingw-msvc/ffmpeg-3.0/include)
+
+set(SDL2_LIBRARIES
+ /usr/local/i586-mingw-msvc/SDL/i686-w64-mingw32/lib/libSDL2.dll.a
+ /usr/local/i586-mingw-msvc/SDL/i686-w64-mingw32/lib/libSDL2main.a)
+set(SDL2_INCLUDE_DIRS /usr/local/i586-mingw-msvc/SDL/i686-w64-mingw32/include/SDL2)
+
+set(SDL_LIBRARIES
+ /usr/local/i586-mingw-msvc/SDL1/lib/libSDL.dll.a
+ /usr/local/i586-mingw-msvc/SDL1/lib/libSDLmain.a)
+set(SDL_INCLUDE_DIRS /usr/local/i586-mingw-msvc/SDL1/include/SDL)
+
+set(SDLMAIN_LIBRARY "")
+
+set(ADDITIONAL_LIBRARIES libwinmm.a)
CMAKE=/usr/bin/cmake
TOOLCHAIN_SCRIPT="../../cmake/toolchain_mingw_cross_linux.cmake"
+#TOOLCHAIN_SCRIPT="../../cmake/toolchain_win32_cross_linux_llvm.cmake"
MAKEFLAGS_CXX="-g -O3 -DNDEBUG"
MAKEFLAGS_CC="-g -O3 -DNDEBUG"
export WINEDEBUG="-all"
CMAKE_LINKFLAG=""
CMAKE_APPENDFLAG=""
+MAKEFLAGS_GENERAL="-j4"
mkdir -p ./bin-win32/
. ./buildvars_mingw_cross_win32.dat
fi
-MAKEFLAGS_GENERAL="-j4"
-
# To use MOC, please enable wine as interpreter of EXEs , below:
# $ sudo update-binfmts --install Win32_Wine /usr/bin/wine --extension exe .
# Compatible with GCC-4.9 (-fabi-version=8)
MAKEFLAGS_LIB_CXX="${MAKEFLAGS_LIB_CXX} -DWINVER=0x501"
MAKEFLAGS_LIB_CC="${MAKEFLAGS_LIB_CC} -DWINVER=0x501"
-
function build_dll() {
mkdir -p $1/build-win32
cd $1/build-win32