summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpalmer@945battery-guestB-224.lindenlab.com <palmer@945battery-guestB-224.lindenlab.com>2009-07-09 17:11:45 -0700
committerpalmer@945battery-guestB-224.lindenlab.com <palmer@945battery-guestB-224.lindenlab.com>2009-07-09 17:11:45 -0700
commit725de557ec1f8dfc3178edd3a19896473863e717 (patch)
tree82180a22d83808b1bdaed3f25025ee4cc18bb4ec
parentbc852ca9276e19ce6cb75d189d58d783a7df5e6f (diff)
parentb5fef75dad1c0992c63ede83b96da0b1db1f9a37 (diff)
Merge of mani's changes... and who knows what. Mercurial wanted a merge, but I had no changes
-rw-r--r--indra/cmake/LLAddBuildTest.cmake9
-rw-r--r--indra/cmake/Linking.cmake1
-rw-r--r--indra/llcommon/CMakeLists.txt10
-rw-r--r--indra/newview/CMakeLists.txt22
-rwxr-xr-xindra/newview/viewer_manifest.py12
5 files changed, 43 insertions, 11 deletions
diff --git a/indra/cmake/LLAddBuildTest.cmake b/indra/cmake/LLAddBuildTest.cmake
index 4a61725e09..5717bc620a 100644
--- a/indra/cmake/LLAddBuildTest.cmake
+++ b/indra/cmake/LLAddBuildTest.cmake
@@ -118,9 +118,16 @@ MACRO(LL_ADD_PROJECT_UNIT_TESTS project sources)
IF(LL_TEST_VERBOSE)
MESSAGE(STATUS "LL_ADD_PROJECT_UNIT_TESTS ${name} test_cmd = ${TEST_CMD}")
ENDIF(LL_TEST_VERBOSE)
+
+ IF(WINDOWS)
+ set(LD_LIBRARY_PATH ${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR})
+ ELSE(WINDOWS)
+ set(LD_LIBRARY_PATH ${ARCH_PREBUILT_DIRS}:/usr/lib)
+ ENDIF(WINDOWS)
+
SET(TEST_SCRIPT_CMD
${CMAKE_COMMAND}
- -DLD_LIBRARY_PATH=${ARCH_PREBUILT_DIRS}:/usr/lib
+ -DLD_LIBRARY_PATH=${LD_LIBRARY_PATH}
-DTEST_CMD:STRING="${TEST_CMD}"
-P ${CMAKE_SOURCE_DIR}/cmake/RunBuildTest.cmake
)
diff --git a/indra/cmake/Linking.cmake b/indra/cmake/Linking.cmake
index eaa8a6dc29..ad52a82b20 100644
--- a/indra/cmake/Linking.cmake
+++ b/indra/cmake/Linking.cmake
@@ -5,6 +5,7 @@ if (NOT STANDALONE)
set(ARCH_PREBUILT_DIRS ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/lib)
set(ARCH_PREBUILT_DIRS_RELEASE ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/lib/release)
set(ARCH_PREBUILT_DIRS_DEBUG ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/lib/debug)
+ set(SHARED_LIB_STAGING_DIR ${CMAKE_BINARY_DIR}/sharedlibs)
elseif (LINUX)
if (VIEWER)
set(ARCH_PREBUILT_DIRS ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/lib_release_client)
diff --git a/indra/llcommon/CMakeLists.txt b/indra/llcommon/CMakeLists.txt
index 06a295b410..aaeb4eebc3 100644
--- a/indra/llcommon/CMakeLists.txt
+++ b/indra/llcommon/CMakeLists.txt
@@ -9,6 +9,10 @@ include(Linking)
include(Boost)
include (Pth)
+if (WINDOWS)
+ include(CopyWinLibs)
+endif (WINDOWS)
+
include_directories(
${EXPAT_INCLUDE_DIRS}
${LLCOMMON_INCLUDE_DIRS}
@@ -234,6 +238,10 @@ list(APPEND llcommon_SOURCE_FILES ${llcommon_HEADER_FILES})
if(LLCOMMON_LINK_SHARED)
add_library (llcommon SHARED ${llcommon_SOURCE_FILES})
add_definitions(-DLL_COMMON_BUILD=1)
+ # *FIX:Mani ---
+ # llcommon.dll get written to the DLL staging directory.
+ # Also this directory is shared with RunBuildTest.cmake, y'know, for the tests.
+ set_target_properties(llcommon PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${SHARED_LIB_STAGING_DIR})
else(LLCOMMON_LINK_SHARED)
add_library (llcommon ${llcommon_SOURCE_FILES})
endif(LLCOMMON_LINK_SHARED)
@@ -250,6 +258,8 @@ target_link_libraries(
${PTH_LIBRARIES}
)
+add_dependencies(llcommon stage_third_party_libs)
+
include(LLAddBuildTest)
SET(llcommon_TEST_SOURCE_FILES
# WARNING: Please don't write tests against LLCommon or LLMath until this issue is resolved: https://jira.lindenlab.com/jira/browse/DEV-29456
diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt
index 53a59031ed..d6108ab06e 100644
--- a/indra/newview/CMakeLists.txt
+++ b/indra/newview/CMakeLists.txt
@@ -38,10 +38,6 @@ include(LLKDU)
include(ViewerMiscLibs)
include(LLLogin)
-if (WINDOWS)
- include(CopyWinLibs)
-endif (WINDOWS)
-
include_directories(
${DBUSGLIB_INCLUDE_DIRS}
${ELFIO_INCLUDE_DIR}
@@ -1252,7 +1248,23 @@ if (WINDOWS)
COMMENT "Copying message.xml to the runtime folder."
)
- add_dependencies(${VIEWER_BINARY_NAME} copy_win_libs)
+ if(WINDOWS)
+ # Copy Win Libs...
+ # This happens at build time, not config time. We can't glob files in this cmake.
+ # *FIX:Mani Write a sub script to glob the files...
+ add_custom_command(
+ TARGET ${VIEWER_BINARY_NAME} PRE_BUILD
+ COMMAND ${CMAKE_COMMAND}
+ ARGS
+ -E
+ copy_directory
+ ${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR}
+ ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}
+ COMMENT "Copying staged dlls."
+ )
+ endif(WINDOWS)
+
+
if (EXISTS ${CMAKE_SOURCE_DIR}/copy_win_scripts)
add_dependencies(${VIEWER_BINARY_NAME} copy_win_scripts)
diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py
index 7edf0bad6b..0217c8f864 100755
--- a/indra/newview/viewer_manifest.py
+++ b/indra/newview/viewer_manifest.py
@@ -168,9 +168,8 @@ class WindowsManifest(ViewerManifest):
# need to get the llcommon.dll from any of the build directories as well
try:
- self.path(self.find_existing_file('../llcommon/%s/llcommon.dll' % self.args['configuration']),
- dst='llcommon.dll')
if self.prefix(src=self.args['configuration'], dst=""):
+ self.path('llcommon.dll')
self.path('libapr-1.dll')
self.path('libaprutil-1.dll')
self.path('libapriconv-1.dll')
@@ -181,8 +180,7 @@ class WindowsManifest(ViewerManifest):
# need to get the kdu dll from any of the build directories as well
try:
- self.path(self.find_existing_file('../llkdu/%s/llkdu.dll' % self.args['configuration'],
- '../../libraries/i686-win32/lib/release/llkdu.dll'),
+ self.path(self.find_existing_file('%s/llkdu.dll' % self.args['configuration']),
dst='llkdu.dll')
pass
except:
@@ -394,7 +392,11 @@ class WindowsManifest(ViewerManifest):
# We use the Unicode version of NSIS, available from
# http://www.scratchpaper.com/
- NSIS_path = 'C:\\Program Files\\NSIS\\Unicode\\makensis.exe'
+ # Check two paths, one for Program Files, and one for Program Files (x86).
+ # Yay 64bit windows.
+ NSIS_path = os.path.expandvars('${ProgramFiles}\\NSIS\\Unicode\\makensis.exe')
+ if not os.path.exists(NSIS_path):
+ NSIS_path = os.path.expandvars('${ProgramFiles(x86)}\\NSIS\\Unicode\\makensis.exe')
self.run_command('"' + proper_windows_path(NSIS_path) + '" ' + self.dst_path_of(tempfile))
# self.remove(self.dst_path_of(tempfile))
# If we're on a build machine, sign the code using our Authenticode certificate. JC