summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPetr Mrázek2011-04-02 02:34:21 +0200
committerPetr Mrázek2011-04-02 02:34:21 +0200
commit42366c238fa9537ee8c1a287a89cdb34915eb83e (patch)
tree3b3469b74b9bd28191f74772e5e3fc736e7b3e23
parent6abd2d76bb581c006b9a93e1cb8087454e36532d (diff)
downloaddfhack-42366c238fa9537ee8c1a287a89cdb34915eb83e.tar.gz
dfhack-42366c238fa9537ee8c1a287a89cdb34915eb83e.tar.bz2
dfhack-42366c238fa9537ee8c1a287a89cdb34915eb83e.tar.xz
Simple packaging scripts
-rw-r--r--CMakeLists.txt11
-rw-r--r--build/linux-remote.bat5
-rw-r--r--build/linux-remote.expect49
-rw-r--r--build/pkg-debian.sh7
-rw-r--r--build/pkg-ubuntu-10.10-x64.sh7
-rw-r--r--build/pkg-ubuntu-10.10.sh7
-rw-r--r--build/pkg-win32.bat37
-rwxr-xr-xbuild/pkg-win32.sh (renamed from build/linux-remote.sh)8
-rw-r--r--package/debian/99-dfhack.conf2
-rwxr-xr-xpackage/debian/postinst2
-rwxr-xr-xpackage/debian/postrm2
-rwxr-xr-xpackage/debian/preinst2
12 files changed, 104 insertions, 35 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index c580cd8e..eddbebbf 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -56,6 +56,7 @@ SET( DFHACK_INSTALL ${DFHACK_INST_DEFAULT} CACHE STRING
'portable' for a portable zip or tar.gz package (windows default)
'linux' for generic packaging and system installs on linux (linux default)
'ubuntu-10.10' for ubuntu maverick package.")
+
SET( MEMXML_DATA_PATH . CACHE PATH
"Path to a valid Memory.xml file.
This is baked into the library, so when you package DFHack for linux, set it to the right path.")
@@ -104,7 +105,7 @@ IF(${DFHACK_INSTALL} STREQUAL "linux")
SET(DFHACK_DOXYGEN_DESTINATION share/dfhack/doc/doxygen)
ENDIF()
-IF(${DFHACK_INSTALL} STREQUAL "ubuntu-10.10")
+IF(${DFHACK_INSTALL} STREQUAL "ubuntu-10.10" OR ${DFHACK_INSTALL} STREQUAL "debian")
if(WIN32)
MESSAGE(FATAL_ERROR "WTF are you doing?")
endif()
@@ -123,7 +124,7 @@ IF(${DFHACK_INSTALL} STREQUAL "ubuntu-10.10")
SET(DFHACK_DEVDOC_DESTINATION usr/share/dfhack/doc)
SET(DFHACK_DOXYGEN_DESTINATION usr/share/dfhack/doc/doxygen)
INSTALL(FILES
- "${CMAKE_CURRENT_SOURCE_DIR}/package/ubuntu-10.10/99-dfhack.conf"
+ "${CMAKE_CURRENT_SOURCE_DIR}/package/${DFHACK_INSTALL}/99-dfhack.conf"
DESTINATION etc/sysctl.d)
ENDIF()
@@ -220,7 +221,7 @@ FUNCTION(GET_DEBIAN_ARCHITECTURE arch)
SET(${arch} ${dpkgarch} PARENT_SCOPE)
ENDFUNCTION()
-IF(${DFHACK_INSTALL} STREQUAL "ubuntu-10.10")
+IF(${DFHACK_INSTALL} STREQUAL "ubuntu-10.10" OR ${DFHACK_INSTALL} STREQUAL "debian")
SET(CPACK_GENERATOR "DEB")
#wtf, wtf, wtf. force them to be empty
@@ -232,11 +233,11 @@ IF(${DFHACK_INSTALL} STREQUAL "ubuntu-10.10")
SET(CPACK_DEBIAN_PACKAGE_SECTION "Games") # yep. magma.
SET(CPACK_DEBIAN_PACKAGE_PRIORITY "optional") # very.
SET(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON) # find deps automatically! hopefully... maybe...
- SET(INSTSCRIPT "${CMAKE_CURRENT_SOURCE_DIR}/package/ubuntu-10.10")
+ SET(INSTSCRIPT "${CMAKE_CURRENT_SOURCE_DIR}/package/${DFHACK_INSTALL}")
SET(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${INSTSCRIPT}/postinst;${INSTSCRIPT}/preinst;${INSTSCRIPT}/postrm")
GET_DEBIAN_ARCHITECTURE(PKG_ARCHITECTURE)
- set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}_${DFHACK_VERSION}-${DFHACK_REVISION}_${PKG_ARCHITECTURE}")
+ set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}_${DFHACK_VERSION}-${DFHACK_REVISION}_${DFHACK_INSTALL}-${PKG_ARCHITECTURE}")
INCLUDE(CPack)
ENDIF()
diff --git a/build/linux-remote.bat b/build/linux-remote.bat
deleted file mode 100644
index bbf03d44..00000000
--- a/build/linux-remote.bat
+++ /dev/null
@@ -1,5 +0,0 @@
-mkdir linux-remote
-cd linux-remote
-cmake ..\.. -G"Visual Studio 10"
-msbuild ALL_BUILD.vcxproj /p:Configuration=Release
-echo FINISHED_BUILD \ No newline at end of file
diff --git a/build/linux-remote.expect b/build/linux-remote.expect
index c694a755..18fcdc8b 100644
--- a/build/linux-remote.expect
+++ b/build/linux-remote.expect
@@ -16,25 +16,40 @@ expect {
return 1
}
+# procedure to do build stuff; result 0 if OK, 1 otherwise
+proc dobuild {} {
+ set timeout -1
+ send "pkg-win32.bat\r\n"
+ puts "\nBuilding...\n"
+expect {
+ "BUILD OK" {return 0}
+ "MSVC ERROR" {return 1}
+ "CMAKE ERROR" {return 1}
+ "ENV ERROR" {return 1}
+}
+}
+
spawn telnet win7
set rez [connect]
-if { $rez == 0 } {
- send "net use X: \\\\vboxsvr\\projects\r\n"
- expect "The command completed successfully."
- send "X:\r\n"
- expect "X:"
- send "cd X:\\dfhack\\build\r\n"
- expect "build"
- send "\"C:\\Program Files (x86)\\MSVC10\\VC\\vcvarsall.bat\" x86\r\n"
- expect "build"
- set timeout -1
- send "linux-remote.bat\r\n"
- # can detect build errors here, pass them out using 'exit'
- expect "FINISHED_BUILD"
- send "exit\r"
- expect eof
- exit 0
-}
+if { $rez == 1 } {
puts "\nError connecting to server!\n"
exit 1
+}
+
+send "net use X: \\\\vboxsvr\\projects\r\n"
+expect "The command completed successfully."
+send "X:\r\n"
+expect "X:"
+send "cd X:\\dfhack\\build\r\n"
+expect "build"
+
+set buildrez [dobuild]
+if { $buildrez == 1 } {
+ puts "\nThere was an error during build.\n"
+} else {
+ puts "\nAll OK.\n"
+}
+send "exit\r"
+expect eof
+exit $buildrez
diff --git a/build/pkg-debian.sh b/build/pkg-debian.sh
new file mode 100644
index 00000000..6d3bce5d
--- /dev/null
+++ b/build/pkg-debian.sh
@@ -0,0 +1,7 @@
+#!/bin/sh
+rm -r debian
+mkdir debian
+cd debian
+cmake ../.. -DCMAKE_BUILD_TYPE="Release" -DDFHACK_INSTALL="debian" -DMEMXML_DATA_PATH="/usr/share/dfhack" -DBUILD_DFHACK_C_BINDINGS=ON -DBUILD_DFHACK_DEVEL=ON -DBUILD_DFHACK_DOXYGEN=OFF -DBUILD_DFHACK_EXAMPLES=OFF -DBUILD_DFHACK_PLAYGROUND=OFF -DBUILD_DFHACK_PYTHON_BINDINGS=ON
+make package
+mv *.deb ../ \ No newline at end of file
diff --git a/build/pkg-ubuntu-10.10-x64.sh b/build/pkg-ubuntu-10.10-x64.sh
new file mode 100644
index 00000000..5f4e17b3
--- /dev/null
+++ b/build/pkg-ubuntu-10.10-x64.sh
@@ -0,0 +1,7 @@
+#!/bin/sh
+rm -r ubuntu64
+mkdir ubuntu64
+cd ubuntu64
+cmake ../.. -DCMAKE_BUILD_TYPE="Release" -DDFHACK_INSTALL="ubuntu-10.10" -DMEMXML_DATA_PATH="/usr/share/dfhack" -DDFHACK_PACKAGE_DIR=".." -DBUILD_DFHACK_C_BINDINGS=ON -DBUILD_DFHACK_DEVEL=ON -DBUILD_DFHACK_DOXYGEN=OFF -DBUILD_DFHACK_EXAMPLES=OFF -DBUILD_DFHACK_PLAYGROUND=OFF -DBUILD_DFHACK_PYTHON_BINDINGS=ON
+make package
+mv *.deb ../ \ No newline at end of file
diff --git a/build/pkg-ubuntu-10.10.sh b/build/pkg-ubuntu-10.10.sh
new file mode 100644
index 00000000..01baab90
--- /dev/null
+++ b/build/pkg-ubuntu-10.10.sh
@@ -0,0 +1,7 @@
+#!/bin/sh
+rm -r ubuntu
+mkdir ubuntu
+cd ubuntu
+cmake ../.. -DCMAKE_BUILD_TYPE="Release" -DDFHACK_INSTALL="ubuntu-10.10" -DMEMXML_DATA_PATH="/usr/share/dfhack" -DDFHACK_PACKAGE_DIR=".." -DBUILD_DFHACK_C_BINDINGS=ON -DBUILD_DFHACK_DEVEL=ON -DBUILD_DFHACK_DOXYGEN=OFF -DBUILD_DFHACK_EXAMPLES=OFF -DBUILD_DFHACK_PLAYGROUND=OFF -DBUILD_DFHACK_PYTHON_BINDINGS=ON
+make package
+mv *.deb ../
diff --git a/build/pkg-win32.bat b/build/pkg-win32.bat
new file mode 100644
index 00000000..ff71e974
--- /dev/null
+++ b/build/pkg-win32.bat
@@ -0,0 +1,37 @@
+@ECHO OFF
+rd /S /Q MSVC10
+mkdir MSVC10
+cd MSVC10
+echo CLEANUP DONE
+
+cmake ..\.. -G"Visual Studio 10" -DDFHACK_INSTALL="portable" -DMEMXML_DATA_PATH="." -DBUILD_DFHACK_C_BINDINGS=OFF -DBUILD_DFHACK_DEVEL=OFF -DBUILD_DFHACK_DOXYGEN=OFF -DBUILD_DFHACK_EXAMPLES=OFF -DBUILD_DFHACK_PLAYGROUND=OFF -DBUILD_DFHACK_PYTHON_BINDINGS=OFF > ..\pkg-win32-cmake.log
+if errorlevel 1 goto cmakeerror
+echo CMAKE OK
+
+call "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" > ..\pkg-win32-env.log
+if errorlevel 1 goto enverror
+echo ENV OK
+
+msbuild PACKAGE.vcxproj /p:Configuration=Release /l:FileLogger,Microsoft.Build.Engine;logfile=..\pkg-win32-msbuild.log;encoding=utf-8 -noconsolelogger > NUL
+if errorlevel 1 goto msvcerror
+move /Y *.zip ..
+echo BUILD OK
+set errorlevel=0
+goto end
+
+:cmakeerror
+echo CMAKE ERROR
+set errorlevel=1
+goto end
+
+:enverror
+echo ENV ERROR
+set errorlevel=1
+goto end
+
+:msvcerror
+echo MSVC ERROR
+set errorlevel=1
+goto end
+
+:end \ No newline at end of file
diff --git a/build/linux-remote.sh b/build/pkg-win32.sh
index 333e682b..6e81264f 100755
--- a/build/linux-remote.sh
+++ b/build/pkg-win32.sh
@@ -12,11 +12,3 @@ VBoxManage startvm "7 Prof"
sleep 20
expect linux-remote.expect $TARGET
-echo "Creating package..."
-cd ../output/$TARGET
-rm -r $PKG
-rm $PKG.zip
-mkdir $PKG
-mv *.exe *.dll *.html *.txt *.xml $PKG
-zip -r $PKG.zip $PKG
-echo "DONE"
diff --git a/package/debian/99-dfhack.conf b/package/debian/99-dfhack.conf
new file mode 100644
index 00000000..a0a17e68
--- /dev/null
+++ b/package/debian/99-dfhack.conf
@@ -0,0 +1,2 @@
+# some settings required for dfhack. fucks up local security...
+kernel.randomize_va_space = 0 \ No newline at end of file
diff --git a/package/debian/postinst b/package/debian/postinst
new file mode 100755
index 00000000..13f47935
--- /dev/null
+++ b/package/debian/postinst
@@ -0,0 +1,2 @@
+#!/bin/sh
+
diff --git a/package/debian/postrm b/package/debian/postrm
new file mode 100755
index 00000000..3b8cdfc6
--- /dev/null
+++ b/package/debian/postrm
@@ -0,0 +1,2 @@
+#!/bin/sh
+# do nothing. blah. \ No newline at end of file
diff --git a/package/debian/preinst b/package/debian/preinst
new file mode 100755
index 00000000..13f47935
--- /dev/null
+++ b/package/debian/preinst
@@ -0,0 +1,2 @@
+#!/bin/sh
+