OSDN Git Service

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