Make nmake builds more like VS builds.

Still some tweaking to go, therefore, still some rough bits in this.
This commit is contained in:
David Walter Seikel
2013-04-26 13:09:45 +10:00
parent 52fbc90af3
commit 044d7575ea
11 changed files with 73 additions and 60 deletions
+5
View File
@@ -24,6 +24,11 @@ list(REMOVE_DUPLICATES TYPES)
set(CMAKE_CONFIGURATION_TYPES ${TYPES} CACHE STRING "Supported build types." FORCE)
unset(TYPES)
# Work around nmake / VS difference.
set(VIEWER_CFG_INTDIR ${CMAKE_CFG_INTDIR})
if (NMAKE)
set(VIEWER_CFG_INTDIR ${CMAKE_BUILD_TYPE})
endif(NMAKE)
# Determine the number of bits of this processor
+4 -1
View File
@@ -580,10 +580,12 @@ class WindowsSetup(PlatformSetup):
unattended=self.unattended,
project_name=self.project_name,
type=self.build_type,
use_vstool='ON'
use_vstool='ON',
nmake=''
)
if self.generator == 'nmake':
args['use_vstool'] = 'OFF'
args['nmake'] = '-DNMAKE:BOOL=ON'
if self.using_express:
args['using_express'] = 'ON'
args['use_vstool'] = 'OFF'
@@ -599,6 +601,7 @@ class WindowsSetup(PlatformSetup):
'-DROOT_PROJECT_NAME:STRING=%(project_name)s '
'-DUSING_EXPRESS:BOOL=%(using_express)s '
'-DUSE_VSTOOL:BOOL=%(use_vstool)s '
'%(nmake)s '
'%(opts)s "%(dir)s"' % args)
def get_build_cmd(self):
@@ -75,7 +75,7 @@ if (DARWIN)
COMMAND mkdir
ARGS
-p
${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/SLPlugin.app/Contents/Resources
${CMAKE_CURRENT_BINARY_DIR}/${VIEWER_CFG_INTDIR}/SLPlugin.app/Contents/Resources
)
endif (DARWIN)
+1 -1
View File
@@ -71,6 +71,6 @@ add_custom_command(
-E
copy_directory
${CMAKE_CURRENT_SOURCE_DIR}/CrashReporter.nib
${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/mac-crash-logger.app/Contents/Resources/CrashReporter.nib
${CMAKE_CURRENT_BINARY_DIR}/${VIEWER_CFG_INTDIR}/mac-crash-logger.app/Contents/Resources/CrashReporter.nib
)
+1 -1
View File
@@ -74,6 +74,6 @@ add_custom_command(
-E
copy_directory
${CMAKE_CURRENT_SOURCE_DIR}/AutoUpdater.nib
${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/mac-updater.app/Contents/Resources/AutoUpdater.nib
${CMAKE_CURRENT_BINARY_DIR}/${VIEWER_CFG_INTDIR}/mac-updater.app/Contents/Resources/AutoUpdater.nib
)
@@ -112,8 +112,8 @@ if (DARWIN)
# copy the webkit dylib to the build directory
add_custom_command(
TARGET media_plugin_webkit POST_BUILD
# OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/libllqtwebkit.dylib
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/../libraries/universal-darwin/lib_release/libllqtwebkit.dylib ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/
# OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${VIEWER_CFG_INTDIR}/libllqtwebkit.dylib
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/../libraries/universal-darwin/lib_release/libllqtwebkit.dylib ${CMAKE_CURRENT_BINARY_DIR}/${VIEWER_CFG_INTDIR}/
DEPENDS media_plugin_webkit ${CMAKE_SOURCE_DIR}/../libraries/universal-darwin/lib_release/libllqtwebkit.dylib
)
+21 -21
View File
@@ -1348,7 +1348,7 @@ if (WINDOWS)
-E
copy_if_different
${CMAKE_CURRENT_SOURCE_DIR}/../../scripts/messages/message_template.msg
${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/app_settings/message_template.msg
${CMAKE_CURRENT_BINARY_DIR}/${VIEWER_CFG_INTDIR}/app_settings/message_template.msg
COMMENT "Copying message_template.msg to the runtime folder."
)
@@ -1359,7 +1359,7 @@ if (WINDOWS)
-E
copy_if_different
${CMAKE_CURRENT_SOURCE_DIR}/../../etc/message.xml
${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/app_settings/message.xml
${CMAKE_CURRENT_BINARY_DIR}/${VIEWER_CFG_INTDIR}/app_settings/message.xml
COMMENT "Copying message.xml to the runtime folder."
)
@@ -1370,11 +1370,11 @@ if (WINDOWS)
endif (EXISTS ${CMAKE_SOURCE_DIR}/copy_win_scripts)
add_custom_command(
OUTPUT ${CMAKE_CFG_INTDIR}/touched.bat
OUTPUT ${VIEWER_CFG_INTDIR}/touched.bat
COMMAND ${PYTHON_EXECUTABLE}
ARGS
${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py
--configuration=${CMAKE_CFG_INTDIR}
--configuration=${VIEWER_CFG_INTDIR}
--channel=${VIEWER_CHANNEL}
--login_channel=${VIEWER_LOGIN_CHANNEL}
--standalone=${STANDALONE}
@@ -1383,15 +1383,15 @@ if (WINDOWS)
--source=${CMAKE_CURRENT_SOURCE_DIR}
--artwork=${ARTWORK_DIR}
--build=${CMAKE_CURRENT_BINARY_DIR}
--dest=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/package
--touch=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/touched.bat
--dest=${CMAKE_CURRENT_BINARY_DIR}/${VIEWER_CFG_INTDIR}/package
--touch=${CMAKE_CURRENT_BINARY_DIR}/${VIEWER_CFG_INTDIR}/touched.bat
DEPENDS ${VIEWER_BINARY_NAME} ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py
)
add_dependencies(${VIEWER_BINARY_NAME} SLPlugin media_plugin_quicktime media_plugin_webkit media_plugin_gstreamer010)
if (PACKAGE)
add_custom_target(package ALL DEPENDS ${CMAKE_CFG_INTDIR}/touched.bat)
add_custom_target(package ALL DEPENDS ${VIEWER_CFG_INTDIR}/touched.bat)
add_dependencies(package windows-updater windows-crash-logger)
endif (PACKAGE)
endif (WINDOWS)
@@ -1526,8 +1526,8 @@ if (DARWIN)
--artwork=${ARTWORK_DIR}
--build=${CMAKE_CURRENT_BINARY_DIR}
--buildtype=${CMAKE_BUILD_TYPE}
--configuration=${CMAKE_CFG_INTDIR}
--dest=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${product}.app
--configuration=${VIEWER_CFG_INTDIR}
--dest=${CMAKE_CURRENT_BINARY_DIR}/${VIEWER_CFG_INTDIR}/${product}.app
--grid=${GRID}
--source=${CMAKE_CURRENT_SOURCE_DIR}
--standalone=${STANDALONE}
@@ -1558,8 +1558,8 @@ if (WINDOWS)
-E
copy_if_different
${BUILT_LLCOMMON}
${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}
COMMENT "Copying llcommon.dll to the runtime folder."
${CMAKE_CURRENT_BINARY_DIR}/${VIEWER_CFG_INTDIR}
COMMENT "Copying llcommon.dll to the runtime folder ${CMAKE_CURRENT_BINARY_DIR}/${VIEWER_CFG_INTDIR}."
)
get_target_property(BUILT_SLPLUGIN SLPlugin LOCATION)
@@ -1570,8 +1570,8 @@ if (WINDOWS)
-E
copy_if_different
${BUILT_SLPLUGIN}
${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}
COMMENT "Copying SLPlugin executable to the runtime folder."
${CMAKE_CURRENT_BINARY_DIR}/${VIEWER_CFG_INTDIR}
COMMENT "Copying SLPlugin executable to the runtime folder ${CMAKE_CURRENT_BINARY_DIR}/${VIEWER_CFG_INTDIR}."
)
get_target_property(BUILT_WEBKIT_PLUGIN media_plugin_webkit LOCATION)
@@ -1582,8 +1582,8 @@ if (WINDOWS)
-E
copy_if_different
${BUILT_WEBKIT_PLUGIN}
${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/llplugin
COMMENT "Copying WebKit Plugin to the runtime folder."
${CMAKE_CURRENT_BINARY_DIR}/${VIEWER_CFG_INTDIR}/llplugin
COMMENT "Copying WebKit Plugin to the runtime folder ${CMAKE_CURRENT_BINARY_DIR}/${VIEWER_CFG_INTDIR}/llplugin."
)
get_target_property(BUILT_GSTREAMER_PLUGIN media_plugin_gstreamer010 LOCATION)
@@ -1594,8 +1594,8 @@ if (WINDOWS)
-E
copy_if_different
${BUILT_GSTREAMER_PLUGIN}
${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/llplugin
COMMENT "Copying Gstreamer Plugin to the runtime folder."
${CMAKE_CURRENT_BINARY_DIR}/${VIEWER_CFG_INTDIR}/llplugin
COMMENT "Copying Gstreamer Plugin to the runtime folder ${CMAKE_CURRENT_BINARY_DIR}/${VIEWER_CFG_INTDIR}/llplugin."
)
get_target_property(BUILT_QUICKTIME_PLUGIN media_plugin_quicktime LOCATION)
@@ -1606,13 +1606,13 @@ if (WINDOWS)
-E
copy_if_different
${BUILT_QUICKTIME_PLUGIN}
${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/llplugin
COMMENT "Copying Quicktime Plugin to the runtime folder."
${CMAKE_CURRENT_BINARY_DIR}/${VIEWER_CFG_INTDIR}/llplugin
COMMENT "Copying Quicktime Plugin to the runtime folder ${CMAKE_CURRENT_BINARY_DIR}/${VIEWER_CFG_INTDIR}/llplugin."
)
# Copying the mime_types.xml file to app_settings
set(mime_types_source "${CMAKE_SOURCE_DIR}/newview/skins/default/xui/en-us")
set(mime_types_dest "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/app_settings")
set(mime_types_dest "${CMAKE_CURRENT_BINARY_DIR}/${VIEWER_CFG_INTDIR}/app_settings")
add_custom_command(
TARGET ${VIEWER_BINARY_NAME} POST_BUILD
COMMAND ${CMAKE_COMMAND}
@@ -1629,7 +1629,7 @@ endif (WINDOWS)
if (DARWIN)
# Don't do this here -- it's taken care of by viewer_manifest.py
# add_custom_command(TARGET ${VIEWER_BINARY_NAME} POST_BUILD
# COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/../libraries/universal-darwin/lib_release/libllqtwebkit.dylib ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/llplugin/
# COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/../libraries/universal-darwin/lib_release/libllqtwebkit.dylib ${CMAKE_CURRENT_BINARY_DIR}/${VIEWER_CFG_INTDIR}/llplugin/
# DEPENDS ${CMAKE_SOURCE_DIR}/../libraries/universal-darwin/lib_release/libllqtwebkit.dylib
# )
endif (DARWIN)
@@ -27,16 +27,16 @@ AppPublisher=The Imprudence Project
AppPublisherURL=http://kokuaviewer.org
AppSupportURL=http://kokuaviewer.org
AllowNoIcons=true
InfoAfterFile=..\..\..\..\..\README.txt
InfoAfterFile=..\..\..\..\..\..\README.txt
OutputDir=.
SetupIconFile=..\..\..\newview\installers\windows\imp_icon.ico
SetupIconFile=..\..\..\..\newview\installers\windows\imp_icon.ico
Compression=lzma2/ultra64
InternalCompressLevel=ultra64
SolidCompression=true
PrivilegesRequired=poweruser
AllowRootDirectory=true
WizardImageFile=..\..\..\newview\installers\windows\imprudence_installer_icon_left.bmp
WizardSmallImageFile=..\..\..\newview\installers\windows\imprudence_installer_icon_right.bmp
WizardImageFile=..\..\..\..\newview\installers\windows\imprudence_installer_icon_left.bmp
WizardSmallImageFile=..\..\..\..\newview\installers\windows\imprudence_installer_icon_right.bmp
SetupLogging=true
RestartIfNeededByRun=false
AlwaysRestart=false
@@ -145,9 +145,9 @@ Source: %%PACKAGEFILES%%\vivoxsdk.dll; DestDir: {app}; Flags: ignoreversion
Source: %%PACKAGEFILES%%\wrap_oal.dll; DestDir: {app}; Flags: ignoreversion
; VC++ 2005 SP1 x86, VC++ 2008 SP1 x86, and VC++ 2010 SP1 x86 redist
Source: ..\..\..\newview\installers\windows\vcredist_x86_VS2005_SP1_MFC_SEC.exe; DestDir: {app}\redist; DestName: vcredist_x86_VS2005_SP1_MFC_SEC.exe
;Source: ..\..\..\newview\installers\windows\vcredist_x86_VS2008_SP1_ATL_SEC.exe; DestDir: {app}\redist; DestName: vcredist_x86_VS2008_SP1_ATL_SEC.exe
Source: ..\..\..\newview\installers\windows\vcredist_x86_VS2010_SP1.exe; DestDir: {app}\redist; DestName: vcredist_x86_VS2010_SP1.exe
Source: ..\..\..\..\newview\installers\windows\vcredist_x86_VS2005_SP1_MFC_SEC.exe; DestDir: {app}\redist; DestName: vcredist_x86_VS2005_SP1_MFC_SEC.exe
;Source: ..\..\..\..\newview\installers\windows\vcredist_x86_VS2008_SP1_ATL_SEC.exe; DestDir: {app}\redist; DestName: vcredist_x86_VS2008_SP1_ATL_SEC.exe
Source: ..\..\..\..\newview\installers\windows\vcredist_x86_VS2010_SP1.exe; DestDir: {app}\redist; DestName: vcredist_x86_VS2010_SP1.exe
; Old files we don't use anymore:
; Source: %%PACKAGEFILES%%\dronesettings.xml; DestDir: {app}; Flags: ignoreversion
+28 -23
View File
@@ -232,21 +232,15 @@ class WindowsManifest(ViewerManifest):
def construct(self):
super(WindowsManifest, self).construct()
# the final exe is complicated because we're not sure where it's coming from,
# nor do we have a fixed name for the executable
# Actually, we know on both counts -- MC
if self.configuration().lower() == "release":
self.path(self.find_existing_file('release/imprudence-bin.exe'), dst=self.final_exe())
elif self.configuration().lower() == "releasesse2":
self.path(self.find_existing_file('releasesse2/imprudence-bin.exe'), dst=self.final_exe())
elif self.configuration().lower() == "relwithdebinfo":
self.path(self.find_existing_file('relwithdebinfo/imprudence-bin.exe'), dst=self.final_exe())
elif self.configuration().lower() == "debug":
self.path(self.find_existing_file('debug/imprudence-bin.exe'), dst=self.final_exe())
else:
self.path(self.find_existing_file('release/imprudence-bin.exe', 'releasesse2/imprudence-bin.exe', 'relwithdebinfo/imprudence-bin.exe', 'debug/imprudence-bin.exe', 'imprudence-bin.exe'), dst=self.final_exe())
# Come out, come out, where ever you are.
executable = self.find_existing_file('release/imprudence-bin.exe', 'releasesse2/imprudence-bin.exe', 'relwithdebinfo/imprudence-bin.exe', 'debug/imprudence-bin.exe', './imprudence-bin.exe')
nmake = False
self.path(executable, dst=self.final_exe())
# copy over the the pdb file for the regular or SSE2 versions if we don't already have one copied
# Don't think this ever worked, the destination seems bogus.
# It's trying to copy a built file outside of the source tree, a file we have anyway.
# TODO - do we even need this?
symbol_ver = '.'.join(self.args['version'])
symbol_file = 'imprudence-%s.%s.pdb' % (symbol_ver, self.args['configuration'])
symbol_path = '../../../../../pdb_files/%s' % (symbol_file)
@@ -255,7 +249,7 @@ class WindowsManifest(ViewerManifest):
else:
#print "%s doesn't exist yet" % (os.getcwd() + symbol_path)
try:
self.path(self.find_existing_file('release/imprudence-bin.pdb'), dst="../%s" % (symbol_path))
self.path(self.find_existing_file(executable.split('/', 1)[0] % '/imprudence-bin.pdb'), dst="../%s" % (symbol_path))
pass
except:
print "Can't save symbol file %s, skipping" % (symbol_path)
@@ -270,7 +264,13 @@ class WindowsManifest(ViewerManifest):
self.path("imprudence.url")
# Plugin host application
self.path(os.path.join(os.pardir, 'llplugin', 'slplugin', self.args['configuration'], "SLPlugin.exe"), "SLPlugin.exe")
try:
self.path(os.path.join(os.pardir, 'llplugin', 'slplugin', self.args['configuration'], "SLPlugin.exe"), "SLPlugin.exe")
except:
# Probably an nmake build, which is not putting exe's into the configuration folders.
self.path(os.path.join(os.pardir, 'llplugin', 'slplugin', "SLPlugin.exe"), "SLPlugin.exe")
# Propogate our wild guess.
nmake = True
self.path("featuretable.txt")
@@ -281,7 +281,7 @@ class WindowsManifest(ViewerManifest):
#self.path("fmod.dll")
# For spellchecking
if self.prefix(src=os.path.join(self.args['configuration'], "Release"), dst=""):
if self.prefix(self.args['configuration'], dst=""):
self.path("libhunspell.dll")
self.end_prefix()
@@ -289,12 +289,12 @@ class WindowsManifest(ViewerManifest):
self.path("llkdu.dll.2.config")
# Get llcommon and deps.
if self.prefix(src=os.path.join(self.args['configuration'], "Release"), dst=""):
if self.prefix(self.args['configuration'], dst=""):
self.path('libapr-1.dll')
self.path('libaprutil-1.dll')
self.path('libapriconv-1.dll')
self.end_prefix()
self.path('llcommon.dll')
self.end_prefix()
# For textures
if self.prefix(src="../../libraries/i686-win32/lib/release", dst=""):
@@ -307,21 +307,26 @@ class WindowsManifest(ViewerManifest):
self.path("alut.dll")
self.end_prefix()
# TODO - Yes, I know, would be better if nmake builds put stuff in the right place, track that down and fix it later.
if nmake:
config = ''
else:
config = self.args['configuration']
# Media plugins - QuickTime
if self.prefix(src='../media_plugins/quicktime/%s' % self.args['configuration'], dst="llplugin"):
if self.prefix(src='../media_plugins/quicktime/%s' % config, dst="llplugin"):
self.path("media_plugin_quicktime.dll")
self.end_prefix()
# Media plugins - WebKit/Qt
if self.prefix(src='../media_plugins/webkit/%s' % self.args['configuration'], dst="llplugin"):
if self.prefix(src='../media_plugins/webkit/%s' % config, dst="llplugin"):
self.path("media_plugin_webkit.dll")
self.end_prefix()
# Media plugins - GStreamer
if self.prefix(src='../media_plugins/gstreamer010/%s' % self.args['configuration'], dst="llplugin"):
if self.prefix(src='../media_plugins/gstreamer010/%s' % config, dst="llplugin"):
self.path("media_plugin_gstreamer010.dll")
self.end_prefix()
self.end_prefix()
# For WebKit/Qt plugin runtimes
if self.prefix(src="../../libraries/i686-win32/lib/release", dst="llplugin"):
self.path("libeay32.dll")
@@ -311,7 +311,7 @@ endif (DARWIN OR LINUX)
if (DARWIN)
# path inside the app bundle where we'll need to copy plugins and other related files
set(PLUGINS_DESTINATION_DIR
${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/llmediaplugintest.app/Contents/Resources
${CMAKE_CURRENT_BINARY_DIR}/${VIEWER_CFG_INTDIR}/llmediaplugintest.app/Contents/Resources
)
# create the Contents/Resources directory
@@ -326,7 +326,7 @@ if (DARWIN)
)
else (DARWIN)
set(PLUGINS_DESTINATION_DIR
${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/
${CMAKE_CURRENT_BINARY_DIR}/${VIEWER_CFG_INTDIR}/
)
endif (DARWIN)
+1 -1
View File
@@ -3,7 +3,7 @@
if [ "$OSTYPE" == "cygwin" ] ; then
# Assumes version has been passed in from outside, coz Windows insists on adding crap to python output.
cd ../../indra/build-nmake/
iscc newview/package/${version}-Windows-x86.iss
iscc newview/$TYPE/package/${version}-Windows-x86.iss
else
cd ../../indra/viewer-linux-*
make package