OSDN Git Service

[BUILD][WIN32] Work even gcc version is not same as native mingw (4.9.2).
[csp-qt/common_source_project-fm7.git] / source / build-cmake / config_build_mingw.sh
1 #!/bin/bash
2
3 CMAKE=cmake
4 CCMAKE_CC=gcc
5 CCMAKE_CXX=g++
6
7 MAKEFLAGS_CXX="-g -O2 -DNDEBUG"
8 MAKEFLAGS_CC="-g -O2 -DNDEBUG"
9 BUILD_TYPE="Relwithdebinfo"
10 CMAKE_APPENDFLAG=""
11 CMAKE_LINKFLAG=""
12
13 mkdir -p ./bin-win32/
14 if [ -e ./buildvars_mingw.dat ] ; then
15     . ./buildvars_mingw.dat
16 fi
17
18
19 MAKEFLAGS_CXX="${MAKEFLAGS_CXX} -DWINVER=0x501"
20 MAKEFLAGS_CC="${MAKEFLAGS_CC} -DWINVER=0x501"
21 MAKEFLAGS_LIB_CXX="${MAKEFLAGS_LIB_CXX} -DWINVER=0x501"
22 MAKEFLAGS_LIB_CC="${MAKEFLAGS_LIB_CC} -DWINVER=0x501"
23
24 case ${BUILD_TYPE} in
25     "Debug" | "DEBUG" | "debug" ) 
26             CMAKE_FLAGS1="-DCMAKE_BUILD_TYPE:STRING=debug"
27             CMAKE_FLAGS2="-DCMAKE_CXX_FLAGS_DEBUG:STRING"
28             CMAKE_FLAGS3="-DCMAKE_C_FLAGS_DEBUG:STRING"
29             ;;
30     "Release" | "RELEASE" | "release" ) 
31             CMAKE_FLAGS1="-DCMAKE_BUILD_TYPE:STRING=Release"
32             CMAKE_FLAGS2="-DCMAKE_CXX_FLAGS_RELEASE:STRING"
33             CMAKE_FLAGS3="-DCMAKE_C_FLAGS_RELEASE:STRING"
34             ;;
35     "Relwithdebinfo" | "RELWITHDEBINFO" | "relwithdebinfo" ) 
36             CMAKE_FLAGS1="-DCMAKE_BUILD_TYPE:STRING=Relwithdebinfo"
37             CMAKE_FLAGS2="-DCMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING"
38             CMAKE_FLAGS3="-DCMAKE_C_FLAGS_RELWITHDEBINFO:STRING"
39             ;;
40      * )
41             echo "Specify BUILD_TYPE in buildvars.dat to Debug, Release, Relwithdebinfo."
42             exit -1
43             ;;
44 esac
45 #libCSPgui
46 mkdir -p libCSPgui/build-win32
47 cd libCSPgui/build-win32
48 echo ${CMAKE_FLAGS1} ${CMAKE_FLAGS2}
49 ${CMAKE} -G "MinGW Makefiles" \
50          -D CMAKE_C_COMPILER:STRING=${CCMAKE_CC}  \
51          -D CMAKE_CXX_COMPILER:STRING=${CCMAKE_CXX} \
52          ${CMAKE_FLAGS1} \
53          "${CMAKE_FLAGS2}=${MAKEFLAGS_LIB_CXX}" \
54          "${CMAKE_FLAGS3}=${MAKEFLAGS_LIB_CC}" \
55          ${CMAKE_APPENDFLAG} \
56          ${CMAKE_LINKFLAG} \
57          .. | tee make.log
58
59 ${CMAKE} -D CMAKE_C_COMPILER:STRING=${CCMAKE_CC}  \
60          -D CMAKE_CXX_COMPILER:STRING=${CCMAKE_CXX} \
61          ${CMAKE_FLAGS1} \
62          "${CMAKE_FLAGS2}=${MAKEFLAGS_LIB_CXX}" \
63          "${CMAKE_FLAGS3}=${MAKEFLAGS_LIB_CC}" \
64          ${CMAKE_APPENDFLAG} \
65          ${CMAKE_LINKFLAG} \
66          .. | tee -a make.log
67          
68 mingw32-make clean
69 mingw32-make ${MAKEFLAGS_GENERAL} 2>&1 | tee -a ./make.log
70
71 case $? in
72       0 ) 
73 #      cp ./qt/gui/libqt_gui.a ../../bin-win32/ 
74 #      cp ./qt/gui/*.lib ../../bin-win32/ 
75 #      cp ./qt/gui/*.dll ../../bin-win32/ 
76       ;;
77       * ) exit $? ;;
78 esac
79 mingw32-make clean
80 cd ../..
81
82 for SRCDATA in $@ ; do\
83
84     mkdir -p ${SRCDATA}/build
85     cd ${SRCDATA}/build
86     
87     echo ${CMAKE_FLAGS1} ${CMAKE_FLAGS2}
88     ${CMAKE} -G "MinGW Makefiles" \
89              -D CMAKE_C_COMPILER:STRING=${CCMAKE_CC}  \
90              -D CMAKE_CXX_COMPILER:STRING=${CCMAKE_CXX} \
91              ${CMAKE_FLAGS1} \
92              "${CMAKE_FLAGS2}=${MAKEFLAGS_CXX}" \
93              "${CMAKE_FLAGS3}=${MAKEFLAGS_CC}" \
94              ${CMAKE_APPENDFLAG} \
95              ${CMAKE_LINKFLAG} \
96              .. | tee make.log
97
98     ${CMAKE} -D CMAKE_C_COMPILER:STRING=${CCMAKE_CC}  \
99              -D CMAKE_CXX_COMPILER:STRING=${CCMAKE_CXX} \
100              ${CMAKE_FLAGS1} \
101              "${CMAKE_FLAGS2}=${MAKEFLAGS_CXX}" \
102              "${CMAKE_FLAGS3}=${MAKEFLAGS_CC}" \
103              ${CMAKE_APPENDFLAG} \
104              ${CMAKE_LINKFLAG} \
105              .. | tee -a make.log
106
107     mingw32-make clean
108     
109     mingw32-make ${MAKEFLAGS_GENERAL} 2>&1 | tee -a ./make.log
110     case $? in
111       0 ) cp ./qt/common/*.exe ../../bin-win32/ ;;
112 #     0 ) sudo make install 2>&1 | tee -a ./make.log ;;
113       * ) exit $? ;;
114     esac
115     
116     mingw32-make clean
117     cd ../..
118 done
119
120 cd libCSPgui/build-win32
121
122 mingw32-make clean
123 cd ../..
124
125 exit 0
126