Przeglądaj źródła

Cross compiling for Windows on Linux

Kandrashin Denis 12 lat temu
rodzic
commit
f83b01b7be
4 zmienionych plików z 44 dodań i 4 usunięć
  1. 25 0
      3rdparty/cmake/mingw32-toolchain.cmake
  2. 3 3
      CMakeLists.txt
  3. 1 1
      ubuntu.sh
  4. 15 0
      windows.sh

+ 25 - 0
3rdparty/cmake/mingw32-toolchain.cmake

@@ -0,0 +1,25 @@
+set( CHOST i686-w64-mingw32 )
+set( CMAKE_SYSTEM_NAME Windows )
+set( CMAKE_RC_COMPILER ${CHOST}-windres )
+set( CMAKE_C_COMPILER ${CHOST}-gcc )
+set( CMAKE_CXX_COMPILER ${CHOST}-g++ )
+
+set(CMAKE_FIND_ROOT_PATH ${CHOST} ${QT_WIN32_PREFIX} )
+
+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(QT_LIBRARY_DIR ${QT_WIN32_PREFIX}/lib)
+set(QT_INCLUDE_DIR ${QT_WIN32_PREFIX}/include)
+set(QT_MKSPECS_DIR ${QT_WIN32_PREFIX}/mkspecs)
+
+set(QT_X11_DIR /usr/bin)
+set(QT_MOC_EXECUTABLE ${QT_X11_DIR}/moc-qt4)
+set(QT_QMAKE_EXECUTABLE ${QT_X11_DIR}/qmake-qt4)
+set(QT_UIC_EXECUTABLE ${QT_X11_DIR}/uic-qt4)
+
+set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -static-libgcc")
+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -static-libgcc -static-libstdc++")
+set(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "${CMAKE_SHARED_LIBRARY_LINK_C_FLAGS} -static-libgcc -s")
+set(CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS "${CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS} -static-libgcc -static-libstdc++ -s")

+ 3 - 3
CMakeLists.txt

@@ -31,10 +31,10 @@ file( GLOB FB2_TSS  source/ts/*.ts   )
 
 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${GTK_PKG_FLAGS}")
 
-if(IS_DIRECTORY ${CMAKE_HOME_DIRECTORY}/.git)
-    exec_program("git --git-dir=${CMAKE_HOME_DIRECTORY}/.git log --format=%ai//%h%d -1" OUTPUT_VARIABLE COMMIT_INFO)
+if(IS_DIRECTORY ${CMAKE_SOURCE_DIR}/.git)
+    exec_program("git --git-dir=${CMAKE_SOURCE_DIR}/.git log --format=%ai//%h%d -1" OUTPUT_VARIABLE COMMIT_INFO)
     message( STATUS "COMMIT_INFO = ${COMMIT_INFO}")
-endif(IS_DIRECTORY ${CMAKE_HOME_DIRECTORY}/.git)
+endif(IS_DIRECTORY ${CMAKE_SOURCE_DIR}/.git)
 
 set(FB2_DEFINITIONS "PACKAGE_NAME=\"${PACKAGE_NAME}\"; PACKAGE_VENDOR=\"${PACKAGE_VENDOR}\"; PACKAGE_VERSION=\"${PACKAGE_VERSION}\"; COMMIT_INFO=\"${COMMIT_INFO}\"")
 set_source_files_properties( source/fb2app.cpp PROPERTIES COMPILE_DEFINITIONS "${FB2_DEFINITIONS}")

+ 1 - 1
ubuntu.sh

@@ -1,6 +1,6 @@
 #!/bin/sh
 
-LIST="quantal precise oneiric natty"
+LIST="saucy raring quantal precise"
 
 NUMBER=1
 

+ 15 - 0
windows.sh

@@ -0,0 +1,15 @@
+#!/bin/sh
+
+QT_WIN32_PREFIX="~/.wine/drive_c/Qt/4.8.4"
+
+rm -rf build-msw
+mkdir build-msw
+cd build-msw
+
+cmake \
+    -D CMAKE_TOOLCHAIN_FILE=../3rdparty/cmake/mingw32-toolchain.cmake \
+    -D QT_WIN32_PREFIX=${QT_WIN32_PREFIX} \
+    ..
+
+make
+