Browse Source

Merge pull request #51 from paulsapps/master

Add template data installer app, fix up build instructions for qt and add all cpack/cmake bits for qt
paulsapps 11 years ago
parent
commit
e41cccaa5f

+ 111 - 107
CMakeLists.txt

@@ -110,16 +110,16 @@ if (NOT OGRE_BUILD_PLATFORM_IPHONE)
 
 
         # Set up referencing of Boost
         # Set up referencing of Boost
         include_directories(${Boost_INCLUDE_DIR})
         include_directories(${Boost_INCLUDE_DIR})
-	if (NOT APPLE)        
-	add_definitions(-DBOOST_ALL_NO_LIB)
-	endif()
+    if (NOT APPLE)        
+    add_definitions(-DBOOST_ALL_NO_LIB)
+    endif()
 
 
         set(OGRE_LIBRARIES ${OGRE_LIBRARIES} ${Boost_LIBRARIES})
         set(OGRE_LIBRARIES ${OGRE_LIBRARIES} ${Boost_LIBRARIES})
 
 
         find_package(Boost COMPONENTS program_options filesystem QUIET)
         find_package(Boost COMPONENTS program_options filesystem QUIET)
         set(OGRE_LIBRARIES ${OGRE_LIBRARIES} ${Boost_LIBRARIES})
         set(OGRE_LIBRARIES ${OGRE_LIBRARIES} ${Boost_LIBRARIES})
         set(QGears_LIBRARIES ${OGRE_LIBRARIES})
         set(QGears_LIBRARIES ${OGRE_LIBRARIES})
-		
+        
         if(QGears_SOUND)
         if(QGears_SOUND)
             find_package(OpenAL REQUIRED)
             find_package(OpenAL REQUIRED)
             find_package(OggVorbis REQUIRED)
             find_package(OggVorbis REQUIRED)
@@ -141,7 +141,7 @@ if (NOT OGRE_BUILD_PLATFORM_IPHONE)
         endif()
         endif()
 
 
         if(QGears_BUILD_TESTS)
         if(QGears_BUILD_TESTS)
-	    message(STATUS "Looking for boost unit test..")
+        message(STATUS "Looking for boost unit test..")
             find_package(Boost COMPONENTS unit_test_framework REQUIRED)
             find_package(Boost COMPONENTS unit_test_framework REQUIRED)
             set(QGears_TEST_LIBRARIES
             set(QGears_TEST_LIBRARIES
                 ${OGRE_LIBRARIES}
                 ${OGRE_LIBRARIES}
@@ -167,11 +167,11 @@ set(QGears_INCLUDE_DIRS
     ${OGRE_Overlay_INCLUDE_DIRS}
     ${OGRE_Overlay_INCLUDE_DIRS}
     ${OGRE_SAMPLES_INCLUDEPATH}
     ${OGRE_SAMPLES_INCLUDEPATH}
     ${CMAKE_CURRENT_SOURCE_DIR}/dependencies
     ${CMAKE_CURRENT_SOURCE_DIR}/dependencies
-	${CMAKE_CURRENT_BINARY_DIR}/dependencies/luajit
-	${CMAKE_CURRENT_SOURCE_DIR}/dependencies/luajit/src
-	${CMAKE_CURRENT_SOURCE_DIR}/dependencies/luabind
-	${CMAKE_CURRENT_SOURCE_DIR}/dependencies/luabind/luabind/detail
-	${CMAKE_CURRENT_SOURCE_DIR}/dependencies/tinyxml
+    ${CMAKE_CURRENT_BINARY_DIR}/dependencies/luajit
+    ${CMAKE_CURRENT_SOURCE_DIR}/dependencies/luajit/src
+    ${CMAKE_CURRENT_SOURCE_DIR}/dependencies/luabind
+    ${CMAKE_CURRENT_SOURCE_DIR}/dependencies/luabind/luabind/detail
+    ${CMAKE_CURRENT_SOURCE_DIR}/dependencies/tinyxml
 )
 )
 
 
 
 
@@ -218,113 +218,117 @@ MESSAGE( STATUS "BOOST_ROOT:         " ${BOOST_ROOT} )
 
 
 #OS SPECIFIC 
 #OS SPECIFIC 
 if(WIN32)
 if(WIN32)
-	# On Windows generate MSI packages
-	SET(CPACK_GENERATOR "WIX")
-	
-	set(CPACK_WIX_TEMPLATE "${CMAKE_CURRENT_SOURCE_DIR}/wix.template.in")
-	SET(CPACK_WIX_UPGRADE_GUID 8fbb893f-5622-4f6d-a7f6-c221f7be5d52)
+    # On Windows generate MSI packages
+    SET(CPACK_GENERATOR "WIX")
+    
+    set(CPACK_WIX_TEMPLATE "${CMAKE_CURRENT_SOURCE_DIR}/wix.template.in")
+    SET(CPACK_WIX_UPGRADE_GUID 8fbb893f-5622-4f6d-a7f6-c221f7be5d52)
 
 
 # TODO: Set MSI banner image, copyright info etc, also include startmenu/desktop shortcuts
 # TODO: Set MSI banner image, copyright info etc, also include startmenu/desktop shortcuts
-	#set the name of the installer default formating is name-version-os
-	
-	# If empty assume release
-	if ("${CMAKE_BUILD_TYPE}" STREQUAL "" OR "${CMAKE_BUILD_TYPE}" STREQUAL "release")
-		message("RELEASE installer build")
-		install(FILES ${PROJECT_SOURCE_DIR}/output/resources.cfg DESTINATION ./)
-		install(FILES ${PROJECT_SOURCE_DIR}/output/plugins.cfg DESTINATION ./)
-		install(FILES ${OGRE_CMAKE_MODULE_PATH}/../bin/release/OgreMain.dll DESTINATION ./)
-		install(FILES ${OGRE_CMAKE_MODULE_PATH}/../bin/release/RenderSystem_GL.dll DESTINATION ./)
-		install(FILES ${OGRE_CMAKE_MODULE_PATH}/../bin/release/OGREOVERLAY.DLL DESTINATION ./)
-		install(FILES ${OGRE_CMAKE_MODULE_PATH}/../bin/release/OIS.DLL DESTINATION ./)
-	else()
-		message("DEBUG installer build")
-		install(FILES ${PROJECT_SOURCE_DIR}/output/resources_d.cfg DESTINATION ./)
-		install(FILES ${PROJECT_SOURCE_DIR}/output/plugins_d.cfg DESTINATION ./)
-		install(FILES ${OGRE_CMAKE_MODULE_PATH}/../bin/debug/OgreMain_d.dll DESTINATION ./)
-		install(FILES ${OGRE_CMAKE_MODULE_PATH}/../bin/debug/RenderSystem_GL_d.dll DESTINATION ./)
-		install(FILES ${OGRE_CMAKE_MODULE_PATH}/../bin/debug/OGREOVERLAY_D.DLL DESTINATION ./)
-		install(FILES ${OGRE_CMAKE_MODULE_PATH}/../bin/debug/OIS_D.DLL DESTINATION ./)
-	endif()
+    #set the name of the installer default formating is name-version-os
+    
+    # If empty assume release
+    if ("${CMAKE_BUILD_TYPE}" STREQUAL "" OR "${CMAKE_BUILD_TYPE}" STREQUAL "release")
+        message("RELEASE installer build")
+        install(FILES ${PROJECT_SOURCE_DIR}/output/resources.cfg DESTINATION ./)
+        install(FILES ${PROJECT_SOURCE_DIR}/output/plugins.cfg DESTINATION ./)
+        install(FILES ${OGRE_CMAKE_MODULE_PATH}/../bin/release/OgreMain.dll DESTINATION ./)
+        install(FILES ${OGRE_CMAKE_MODULE_PATH}/../bin/release/RenderSystem_GL.dll DESTINATION ./)
+        install(FILES ${OGRE_CMAKE_MODULE_PATH}/../bin/release/OGREOVERLAY.DLL DESTINATION ./)
+        install(FILES ${OGRE_CMAKE_MODULE_PATH}/../bin/release/OIS.DLL DESTINATION ./)
+        install(FILES ${QT_PLUGINS_DIR}/../bin/QtCore4.dll DESTINATION ./)
+        install(FILES ${QT_PLUGINS_DIR}/../bin/QtGui4.dll DESTINATION ./)
+    else()
+        message("DEBUG installer build")
+        install(FILES ${PROJECT_SOURCE_DIR}/output/resources_d.cfg DESTINATION ./)
+        install(FILES ${PROJECT_SOURCE_DIR}/output/plugins_d.cfg DESTINATION ./)
+        install(FILES ${OGRE_CMAKE_MODULE_PATH}/../bin/debug/OgreMain_d.dll DESTINATION ./)
+        install(FILES ${OGRE_CMAKE_MODULE_PATH}/../bin/debug/RenderSystem_GL_d.dll DESTINATION ./)
+        install(FILES ${OGRE_CMAKE_MODULE_PATH}/../bin/debug/OGREOVERLAY_D.DLL DESTINATION ./)
+        install(FILES ${OGRE_CMAKE_MODULE_PATH}/../bin/debug/OIS_D.DLL DESTINATION ./)
+        install(FILES ${QT_PLUGINS_DIR}/../bin/QtCored4.dll DESTINATION ./)
+        install(FILES ${QT_PLUGINS_DIR}/../bin/QtGuid4.dll DESTINATION ./)
+    endif()
 elseif(APPLE)
 elseif(APPLE)
-	# APPLE is also UNIX, so must check for APPLE before UNIX
-	SET(CPACK_GENERATOR "DragNDrop")
- 	install(FILES ${PROJECT_SOURCE_DIR}/output/resources.cfg DESTINATION ./)
-	install(FILES ${PROJECT_SOURCE_DIR}/output/plugins.cfg DESTINATION ./)
+    # APPLE is also UNIX, so must check for APPLE before UNIX
+    SET(CPACK_GENERATOR "DragNDrop")
+    install(FILES ${PROJECT_SOURCE_DIR}/output/resources.cfg DESTINATION ./)
+    install(FILES ${PROJECT_SOURCE_DIR}/output/plugins.cfg DESTINATION ./)
         install(FILES ${OGRE_CMAKE_MODULE_PATH}/../lib/macosx/Release/Ogre.framework/Ogre DESTINATION ./)
         install(FILES ${OGRE_CMAKE_MODULE_PATH}/../lib/macosx/Release/Ogre.framework/Ogre DESTINATION ./)
         install(FILES ${OGRE_CMAKE_MODULE_PATH}/../lib/macosx/Release/RenderSystem_GL.framework/Versions/1.9.0/RenderSystem_GL DESTINATION ./)
         install(FILES ${OGRE_CMAKE_MODULE_PATH}/../lib/macosx/Release/RenderSystem_GL.framework/Versions/1.9.0/RenderSystem_GL DESTINATION ./)
         install(FILES ${OGRE_CMAKE_MODULE_PATH}/../lib/macosx/Release/OgreOverlay.framework/Versions/1.9.0/OgreOverlay DESTINATION ./)
         install(FILES ${OGRE_CMAKE_MODULE_PATH}/../lib/macosx/Release/OgreOverlay.framework/Versions/1.9.0/OgreOverlay DESTINATION ./)
 
 
-	# TODO: Fix up other files and use "otool" to fix dynlib + framework paths
+    # TODO: Fix up other files and use "otool" to fix dynlib + framework paths
         #install(FILES ${OGRE_CMAKE_MODULE_PATH}/../bin/release/OIS.DLL DESTINATION ./)
         #install(FILES ${OGRE_CMAKE_MODULE_PATH}/../bin/release/OIS.DLL DESTINATION ./)
         #install(FILES "${BOOST_ROOT}/stage/lib/BOOST_SYSTEM-VC120-MT-1_55.DLL" DESTINATION ./)
         #install(FILES "${BOOST_ROOT}/stage/lib/BOOST_SYSTEM-VC120-MT-1_55.DLL" DESTINATION ./)
 elseif(UNIX)
 elseif(UNIX)
-	# On Linux generate TAR.GZ,DEB and RPM packages
-	#Find out what architecture are we running on and set the package architecture 
-	
-	# set the generic files needing to be installed
-	install( FILES ${PROJECT_SOURCE_DIR}/q-gears.png DESTINATION ./share/pixmaps/ )
-	install( FILES ${PROJECT_SOURCE_DIR}/q-gears.desktop DESTINATION ./share/applications/ )
-	install( FILES ${PROJECT_SOURCE_DIR}/debian/menu DESTINATION share/menu/ RENAME q-gears )
-	install( FILES ${PROJECT_SOURCE_DIR}/output/plugins.cfg_linux DESTINATION share/q-gears/ RENAME plugins.cfg PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ GROUP_WRITE WORLD_WRITE WORLD_READ)
-	install( FILES ${PROJECT_SOURCE_DIR}/output/resources.cfg_linux DESTINATION share/q-gears/ RENAME resources.cfg PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ GROUP_WRITE WORLD_WRITE WORLD_READ)
-	install( FILES ${PROJECT_SOURCE_DIR}/output/q-gears.cfg_linux DESTINATION share/q-gears/ RENAME q-gears.cfg PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ GROUP_WRITE WORLD_WRITE WORLD_READ)
-		
-	if(EXISTS "/usr/lib/x86_64-linux-gnu/OGRE-1.9.0/RenderSystem_GL.so")
-	  install( FILES /usr/lib/x86_64-linux-gnu/OGRE-1.9.0/RenderSystem_GL.so DESTINATION share/q-gears/plugins/ RENAME RenderSystem_GL.so.1.9.0 )
-	endif()
-		
-		
-	SET(CPACK_SOURCE_GENERATOR "TGZ;TZ")
-	SET(CPACK_GENERATOR "TGZ")
-	#detect Distro Family DEB , RPM 
-	if(EXISTS "/etc/lsb-release")
-	    set(DistroType DEB)
-	elseif(EXISTS "/etc/debian_release")
-	    set(DistroType DEB)
-	elseif(EXISTS "/etc/fedora-release")
-	    set(DistroType RPM)
-	endif()
-	message(STATUS "Distro Detected: ${DistroType} ")
-
-	if(DistroType MATCHES "DEB")
-	  # Setup DEB package properties
-	  MESSAGE(STATUS "DEB ADDED TO GENERATION LIST")
-	  SET(CPACK_GENERATOR "${CPACK_GENERATOR};DEB")
-	endif()
-	if(EXISTS "/usr/bin/rpmbuild")
-	  MESSAGE(STATUS "RPM ADDED TO GENERATION LIST (RPM IS DISABLED IN CMAKELISTS)")
-	#  Uncomment to allow for rpm files to be built.   
-	#  SET(CPACK_GENERATOR "${CPACK_GENERATOR};RPM")
-	endif()
-	
-	# Setup DEB package properties
-	SET(CPACK_DEBIAN_PACKAGE_MAINTAINER "Chris Rizzitello <sithlord48@gmail.com>")
-	
-	
-	#Set DEBIAN INFO
-	SET(CPACK_DEBIAN_PACKAGE_SECTION games)
-	SET(CPACK_DEBIAN_PACKAGE_PRIORITY extra)
-	#SET(CPACK_PACKAGE_EXECUTABLE )
-	EXECUTE_PROCESS(COMMAND dpkg --print-architecture OUTPUT_VARIABLE CPACK_DEBIAN_PACKAGE_ARCHITECTURE OUTPUT_STRIP_TRAILING_WHITESPACE)
-	MESSAGE (STATUS "Architecture: ${CPACK_DEBIAN_PACKAGE_ARCHITECTURE}")
-	#we should need no longer need postinst since we have added extra install steps to what it would.
-	#SET(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA ${CMAKE_SOURCE_DIR}/debian/postinst )
-	#set the name to be debian package like.
-	SET(CPACK_PACKAGE_FILE_NAME "q-gears_${CPACK_PACKAGE_VERSION}-${CPACK_DEBIAN_PACKAGE_ARCHITECTURE}")
-	#SET(CPACK_DEBIAN_PACKAGE_DEPENDS "libogre-1.9, libois,libboost-program-options,libboost-filesystem,libvorbis,libopenal,libboost-test,zlib1g")
-	SET(CPACK_DEBIAN_PACKAGE_DEPENDS "libogre-1.9.0, libois-1.3.0,libboost-program-options1.54.0,libboost-filesystem1.54.0,libvorbis0a,libvorbisfile3,libvorbisenc2,libopenal1,libboost-test1.54.0,zlib1g,liblua5.1-0")
-
-	#Set RPM info
-	  SET(CPACK_RPM_PACKAGE_SUMMARY CPACK_PACKAGE_DESCRIPTION_SUMMARY)
-	  SET(CPACK_RPM_PACKAGE_NAME CPACK_PACKAGE_NAME)
-	  SET(CPACK_RPM_PACKAGE_VERSION CPACK_PACKAGE_VERSION)
-	  SET(CPACK_RPM_PACKAGE_RELEASE 1)
-	  SET(CPACK_RPM_PACKAGE_LICENSE "GPLv3+")
-	  SET(CPACK_RPM_PACKAGE_GROUP games)
-	  SET(CPACK_RPM_PACKAGE_VENDOR)
-	  SET(CPACK_RPM_PACKAGE_DESCRIPTION)
-	  #REQUIREMENTS NEED TO BE CHECKED USING FEDORA.
-	  #SET(CPACK_RPM_PACKAGE_REQUIRES "ogre,ois,boost,vorbis,lua,zlib1g")
+    # On Linux generate TAR.GZ,DEB and RPM packages
+    #Find out what architecture are we running on and set the package architecture 
+    
+    # set the generic files needing to be installed
+    install( FILES ${PROJECT_SOURCE_DIR}/q-gears.png DESTINATION ./share/pixmaps/ )
+    install( FILES ${PROJECT_SOURCE_DIR}/q-gears.desktop DESTINATION ./share/applications/ )
+    install( FILES ${PROJECT_SOURCE_DIR}/debian/menu DESTINATION share/menu/ RENAME q-gears )
+    install( FILES ${PROJECT_SOURCE_DIR}/output/plugins.cfg_linux DESTINATION share/q-gears/ RENAME plugins.cfg PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ GROUP_WRITE WORLD_WRITE WORLD_READ)
+    install( FILES ${PROJECT_SOURCE_DIR}/output/resources.cfg_linux DESTINATION share/q-gears/ RENAME resources.cfg PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ GROUP_WRITE WORLD_WRITE WORLD_READ)
+    install( FILES ${PROJECT_SOURCE_DIR}/output/q-gears.cfg_linux DESTINATION share/q-gears/ RENAME q-gears.cfg PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ GROUP_WRITE WORLD_WRITE WORLD_READ)
+        
+    if(EXISTS "/usr/lib/x86_64-linux-gnu/OGRE-1.9.0/RenderSystem_GL.so")
+      install( FILES /usr/lib/x86_64-linux-gnu/OGRE-1.9.0/RenderSystem_GL.so DESTINATION share/q-gears/plugins/ RENAME RenderSystem_GL.so.1.9.0 )
+    endif()
+        
+        
+    SET(CPACK_SOURCE_GENERATOR "TGZ;TZ")
+    SET(CPACK_GENERATOR "TGZ")
+    #detect Distro Family DEB , RPM 
+    if(EXISTS "/etc/lsb-release")
+        set(DistroType DEB)
+    elseif(EXISTS "/etc/debian_release")
+        set(DistroType DEB)
+    elseif(EXISTS "/etc/fedora-release")
+        set(DistroType RPM)
+    endif()
+    message(STATUS "Distro Detected: ${DistroType} ")
+
+    if(DistroType MATCHES "DEB")
+      # Setup DEB package properties
+      MESSAGE(STATUS "DEB ADDED TO GENERATION LIST")
+      SET(CPACK_GENERATOR "${CPACK_GENERATOR};DEB")
+    endif()
+    if(EXISTS "/usr/bin/rpmbuild")
+      MESSAGE(STATUS "RPM ADDED TO GENERATION LIST (RPM IS DISABLED IN CMAKELISTS)")
+    #  Uncomment to allow for rpm files to be built.   
+    #  SET(CPACK_GENERATOR "${CPACK_GENERATOR};RPM")
+    endif()
+    
+    # Setup DEB package properties
+    SET(CPACK_DEBIAN_PACKAGE_MAINTAINER "Chris Rizzitello <sithlord48@gmail.com>")
+    
+    
+    #Set DEBIAN INFO
+    SET(CPACK_DEBIAN_PACKAGE_SECTION games)
+    SET(CPACK_DEBIAN_PACKAGE_PRIORITY extra)
+    #SET(CPACK_PACKAGE_EXECUTABLE )
+    EXECUTE_PROCESS(COMMAND dpkg --print-architecture OUTPUT_VARIABLE CPACK_DEBIAN_PACKAGE_ARCHITECTURE OUTPUT_STRIP_TRAILING_WHITESPACE)
+    MESSAGE (STATUS "Architecture: ${CPACK_DEBIAN_PACKAGE_ARCHITECTURE}")
+    #we should need no longer need postinst since we have added extra install steps to what it would.
+    #SET(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA ${CMAKE_SOURCE_DIR}/debian/postinst )
+    #set the name to be debian package like.
+    SET(CPACK_PACKAGE_FILE_NAME "q-gears_${CPACK_PACKAGE_VERSION}-${CPACK_DEBIAN_PACKAGE_ARCHITECTURE}")
+    #SET(CPACK_DEBIAN_PACKAGE_DEPENDS "libogre-1.9, libois,libboost-program-options,libboost-filesystem,libvorbis,libopenal,libboost-test,zlib1g")
+    SET(CPACK_DEBIAN_PACKAGE_DEPENDS "libogre-1.9.0, libois-1.3.0,libboost-program-options1.54.0,libboost-filesystem1.54.0,libvorbis0a,libvorbisfile3,libvorbisenc2,libopenal1,libboost-test1.54.0,zlib1g,liblua5.1-0")
+
+    #Set RPM info
+      SET(CPACK_RPM_PACKAGE_SUMMARY CPACK_PACKAGE_DESCRIPTION_SUMMARY)
+      SET(CPACK_RPM_PACKAGE_NAME CPACK_PACKAGE_NAME)
+      SET(CPACK_RPM_PACKAGE_VERSION CPACK_PACKAGE_VERSION)
+      SET(CPACK_RPM_PACKAGE_RELEASE 1)
+      SET(CPACK_RPM_PACKAGE_LICENSE "GPLv3+")
+      SET(CPACK_RPM_PACKAGE_GROUP games)
+      SET(CPACK_RPM_PACKAGE_VENDOR)
+      SET(CPACK_RPM_PACKAGE_DESCRIPTION)
+      #REQUIREMENTS NEED TO BE CHECKED USING FEDORA.
+      #SET(CPACK_RPM_PACKAGE_REQUIRES "ogre,ois,boost,vorbis,lua,zlib1g")
 
 
 endif()
 endif()
 
 

+ 21 - 1
readme.md

@@ -11,7 +11,7 @@ See here for builds http://qgears.itscovarr.com here you will find nightly build
 
 
 #### Ubuntu Linux 14.04
 #### Ubuntu Linux 14.04
 
 
-Ogre version must be 1.9, Boost version must be 55, gcc version must be 4.9, QtCreator is optional - install if you want to use this as the IDE (recommended).
+Ogre version must be 1.9, Qt version 4.8, Boost version must be 55, gcc version must be 4.9, QtCreator is optional - install if you want to use this as the IDE (recommended).
 
 
 **Install required packages:**
 **Install required packages:**
 ```
 ```
@@ -26,6 +26,7 @@ Ogre version must be 1.9, Boost version must be 55, gcc version must be 4.9, QtC
 * sudo apt-get install qtcreator
 * sudo apt-get install qtcreator
 * sudo apt-get install libogre-1.9-dev
 * sudo apt-get install libogre-1.9-dev
 * sudo apt-get install libois-dev
 * sudo apt-get install libois-dev
+* sudo apt-get install libqt4-dev
 ```
 ```
 
 
 **Sync down the QGears source code:**
 **Sync down the QGears source code:**
@@ -78,6 +79,7 @@ Anyway here is what we need for Ubuntu 12.04 (Travis-CI) **WARNING** updating th
 * sudo apt-get install libglu-dev
 * sudo apt-get install libglu-dev
 * sudo apt-get install libfreetype6-dev 
 * sudo apt-get install libfreetype6-dev 
 * sudo apt-get install checkinstall
 * sudo apt-get install checkinstall
+* sudo apt-get install libqt4-dev
 ```
 ```
 
 
 **Sync down source for Ogre 1.9:**
 **Sync down source for Ogre 1.9:**
@@ -185,6 +187,23 @@ http://zlib.net/zlib128-dll.zip
 ```
 ```
 Extract to the root of C drive.
 Extract to the root of C drive.
 
 
+
+**Download Qt 4.8 source code:**
+```
+https://download.qt.io/archive/qt/4.8/4.8.6/qt-everywhere-opensource-src-4.8.6.zip
+```
+Again Extract to the root of C drive.
+
+**Build Qt:**
+
+Open a Visual Studio 2013 command prompt and enter:
+
+```
+configure -platform win32-msvc2013 -no-webkit -debug-and-release -no-phonon -no-qt3support -mp -no-scripttools -nomake demos -nomake examples -no-openssl 
+```
+
+Key in "o" to use the open source license and then "y" to agree. Once this is done enter "nmake" to finish compling Qt.
+
 Now sync down the QGears source code, first create a directory some where you want to sync the code to using Windows explorer. Then right in the newly created directory and select "GIT Bash here".
 Now sync down the QGears source code, first create a directory some where you want to sync the code to using Windows explorer. Then right in the newly created directory and select "GIT Bash here".
 
 
 In the git bash enter:
 In the git bash enter:
@@ -199,6 +218,7 @@ Now cd to where you synced the qgears source code to. For me this was "cd C:\Use
 ```
 ```
 mkdir build
 mkdir build
 cd build
 cd build
+set QTDIR=C:/qt-everywhere-opensource-src-4.8.6
 set OGRE_HOME=C:/OgreSDK/OgreSDK_vc12_v1-9-0
 set OGRE_HOME=C:/OgreSDK/OgreSDK_vc12_v1-9-0
 cmake .. -DZLIB_ROOT=C:/zlib128-dll -DBOOST_ROOT=C:/boost_1_55_0
 cmake .. -DZLIB_ROOT=C:/zlib128-dll -DBOOST_ROOT=C:/boost_1_55_0
 ```
 ```

+ 18 - 2
utilities/installer/CMakeLists.txt

@@ -1,15 +1,29 @@
+INCLUDE(${QT_USE_FILE})
+ADD_DEFINITIONS(${QT_DEFINITIONS})
+
+# This is where the ui generated header files end up
+INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR})
+
 include_directories(
 include_directories(
     ${CMAKE_CURRENT_SOURCE_DIR}/include
     ${CMAKE_CURRENT_SOURCE_DIR}/include
 )
 )
 
 
 # define header and source files
 # define header and source files
 set(HEADER_FILES
 set(HEADER_FILES
-
+    src/mainwindow.h
 )
 )
 set(SOURCE_FILES
 set(SOURCE_FILES
     src/Main.cpp
     src/Main.cpp
+    src/mainwindow.cpp
 )
 )
 
 
+set(INSTALLER_FORMS
+   src/mainwindow.ui
+)
+
+QT4_WRAP_UI(INSTALLER_FORM_HEADERS ${INSTALLER_FORMS})
+QT4_WRAP_CPP(INSTALLER_HEADERS_MOC ${HEADER_FILES})
+
 add_definitions(
 add_definitions(
     -DQGEARS_ADD_MANAGERS
     -DQGEARS_ADD_MANAGERS
 )
 )
@@ -17,6 +31,8 @@ add_definitions(
 add_executable(installer
 add_executable(installer
   ${HEADER_FILES}
   ${HEADER_FILES}
   ${SOURCE_FILES}
   ${SOURCE_FILES}
+  ${INSTALLER_FORM_HEADERS}
+  ${INSTALLER_HEADERS_MOC}
 )
 )
 SET_PROPERTY(TARGET installer PROPERTY FOLDER "utilities")
 SET_PROPERTY(TARGET installer PROPERTY FOLDER "utilities")
 
 
@@ -35,7 +51,7 @@ set(LIBRARIES
     Utility
     Utility
 )
 )
 
 
-target_link_libraries(installer    ${LIBRARIES})
+target_link_libraries(installer    ${LIBRARIES} ${QT_LIBRARIES})
 
 
 install(TARGETS installer
 install(TARGETS installer
     DESTINATION .
     DESTINATION .

+ 8 - 5
utilities/installer/src/Main.cpp

@@ -1,8 +1,11 @@
-#include <Ogre.h>
-#include "../../common/OgreBase.h"
-#include "../../common/Logger.h"
+#include "mainwindow.h"
+#include <QApplication>
 
 
-int main( int argc, char *argv[] )
+int main(int argc, char *argv[])
 {
 {
-    return 0;
+    QApplication a(argc, argv);
+    MainWindow w;
+    w.show();
+
+    return a.exec();
 }
 }

+ 48 - 0
utilities/installer/src/mainwindow.cpp

@@ -0,0 +1,48 @@
+#include "mainwindow.h"
+#include "ui_mainwindow.h"
+
+MainWindow::MainWindow(QWidget *parent) :
+    QMainWindow(parent),
+    ui(new Ui::MainWindow)
+{
+    ui->setupUi(this);
+    /*
+     set any options here
+     */
+
+}
+
+MainWindow::~MainWindow()
+{
+    delete ui;
+}
+
+void MainWindow::on_btnInput_clicked()
+{
+    QString temp = QFileDialog::getExistingDirectory(this,tr("Location of Game Data),"),QDir::homePath());
+    ui->lineInput->setText(temp);
+}
+
+
+void MainWindow::on_btnOutput_clicked()
+{
+    QString temp = QFileDialog::getExistingDirectory(this,tr("Location of QGears Data),"),QDir::homePath());
+    ui->lineOutput->setText(temp);
+}
+
+
+void MainWindow::on_btnGO_clicked()
+{
+    if (ui->lineInput->text().isEmpty())
+    {
+        QMessageBox::critical(this,tr("Input Error"),tr("No Input Provided"));
+    }
+    else if(ui->lineOutput->text().isEmpty())
+    {
+        QMessageBox::critical(this,tr("Output Error"),tr("No Output Path Provided"));
+    }
+    else
+    {
+        QMessageBox::information(this,tr("Converting Data"),tr("Attempt to convert with \n Input: %1 \n Output: %2").arg(ui->lineInput->text(),ui->lineOutput->text()));
+    }
+}

+ 30 - 0
utilities/installer/src/mainwindow.h

@@ -0,0 +1,30 @@
+#ifndef MAINWINDOW_H
+#define MAINWINDOW_H
+
+#include <QMainWindow>
+#include <QFileDialog>
+#include <QMessageBox>
+namespace Ui {
+class MainWindow;
+}
+
+class MainWindow : public QMainWindow
+{
+    Q_OBJECT
+
+public:
+    explicit MainWindow(QWidget *parent = 0);
+    ~MainWindow();
+
+private slots:
+    void on_btnInput_clicked();
+
+    void on_btnOutput_clicked();
+
+    void on_btnGO_clicked();
+
+private:
+    Ui::MainWindow *ui;
+};
+
+#endif // MAINWINDOW_H

+ 125 - 0
utilities/installer/src/mainwindow.ui

@@ -0,0 +1,125 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>MainWindow</class>
+ <widget class="QMainWindow" name="MainWindow">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>486</width>
+    <height>145</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>MainWindow</string>
+  </property>
+  <widget class="QWidget" name="centralWidget">
+   <layout class="QVBoxLayout" name="verticalLayout">
+    <item>
+     <layout class="QHBoxLayout" name="horizontalLayout">
+      <item>
+       <widget class="QLabel" name="label">
+        <property name="text">
+         <string>Data Source:</string>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <widget class="QLineEdit" name="lineInput"/>
+      </item>
+      <item>
+       <widget class="QPushButton" name="btnInput">
+        <property name="maximumSize">
+         <size>
+          <width>24</width>
+          <height>24</height>
+         </size>
+        </property>
+        <property name="text">
+         <string>...</string>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </item>
+    <item>
+     <layout class="QHBoxLayout" name="horizontalLayout_2">
+      <item>
+       <widget class="QLabel" name="label_2">
+        <property name="text">
+         <string>Output Path:</string>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <widget class="QLineEdit" name="lineOutput"/>
+      </item>
+      <item>
+       <widget class="QPushButton" name="btnOutput">
+        <property name="maximumSize">
+         <size>
+          <width>24</width>
+          <height>24</height>
+         </size>
+        </property>
+        <property name="text">
+         <string>...</string>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </item>
+    <item>
+     <widget class="QPushButton" name="btnGO">
+      <property name="text">
+       <string>PushButton</string>
+      </property>
+     </widget>
+    </item>
+   </layout>
+  </widget>
+  <widget class="QMenuBar" name="menuBar">
+   <property name="geometry">
+    <rect>
+     <x>0</x>
+     <y>0</y>
+     <width>486</width>
+     <height>20</height>
+    </rect>
+   </property>
+   <widget class="QMenu" name="menuFile">
+    <property name="title">
+     <string>File</string>
+    </property>
+    <addaction name="actionExit"/>
+   </widget>
+   <addaction name="menuFile"/>
+  </widget>
+  <widget class="QStatusBar" name="statusBar"/>
+  <action name="actionExit">
+   <property name="text">
+    <string>Exit</string>
+   </property>
+  </action>
+ </widget>
+ <layoutdefault spacing="6" margin="11"/>
+ <resources/>
+ <connections>
+  <connection>
+   <sender>actionExit</sender>
+   <signal>triggered()</signal>
+   <receiver>MainWindow</receiver>
+   <slot>close()</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>242</x>
+     <y>199</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>242</x>
+     <y>199</y>
+    </hint>
+   </hints>
+  </connection>
+ </connections>
+</ui>