From 57b47705d7a4a2927ac7329bd2b5b37c1c1c5115 Mon Sep 17 00:00:00 2001
From: James Cook <james@lindenlab.com>
Date: Fri, 17 Apr 2009 20:39:07 +0000
Subject: Build system fixes for library-library dependencies, ported from
 skinning-7.  OK by CG. svn merge -r117623:117624
 svn+ssh://svn.lindenlab.com/svn/linden/branches/skinning/skinning-7

---
 indra/cmake/LLWindow.cmake    |  5 -----
 indra/llimage/CMakeLists.txt  |  7 +++++--
 indra/llrender/CMakeLists.txt |  7 +++++++
 indra/llui/CMakeLists.txt     | 11 +++++++++++
 indra/llwindow/CMakeLists.txt | 13 +++++++++++++
 indra/llxml/CMakeLists.txt    |  6 ++++--
 6 files changed, 40 insertions(+), 9 deletions(-)

(limited to 'indra')

diff --git a/indra/cmake/LLWindow.cmake b/indra/cmake/LLWindow.cmake
index e749055abf..c0efa27f6e 100644
--- a/indra/cmake/LLWindow.cmake
+++ b/indra/cmake/LLWindow.cmake
@@ -40,9 +40,4 @@ else (SERVER AND LINUX)
   set(LLWINDOW_LIBRARIES
       llwindow
       )
-  if (WINDOWS)
-      list(APPEND LLWINDOW_LIBRARIES
-          comdlg32
-          )
-  endif (WINDOWS)
 endif (SERVER AND LINUX)
diff --git a/indra/llimage/CMakeLists.txt b/indra/llimage/CMakeLists.txt
index 1a4d92bc34..a155d19407 100644
--- a/indra/llimage/CMakeLists.txt
+++ b/indra/llimage/CMakeLists.txt
@@ -49,8 +49,11 @@ set_source_files_properties(${llimage_HEADER_FILES}
 list(APPEND llimage_SOURCE_FILES ${llimage_HEADER_FILES})
 
 add_library (llimage ${llimage_SOURCE_FILES})
-target_link_libraries(
-    llimage
+# Libraries on which this library depends, needed for Linux builds
+# Sort by high-level to low-level
+target_link_libraries(llimage
+    llcommon
+    llimagej2coj        # *HACK: In theory a noop for KDU builds?
     ${JPEG_LIBRARIES}
     ${PNG_LIBRARIES}
     ${ZLIB_LIBRARIES}
diff --git a/indra/llrender/CMakeLists.txt b/indra/llrender/CMakeLists.txt
index 0bdb55f9d0..0bb835970f 100644
--- a/indra/llrender/CMakeLists.txt
+++ b/indra/llrender/CMakeLists.txt
@@ -3,6 +3,7 @@
 project(llrender)
 
 include(00-Common)
+include(FindOpenGL)
 include(FreeType)
 include(LLCommon)
 include(LLImage)
@@ -89,3 +90,9 @@ else (SERVER AND NOT WINDOWS AND NOT DARWIN)
       )
 endif (SERVER AND NOT WINDOWS AND NOT DARWIN)
 add_library (llrender ${llrender_SOURCE_FILES})
+# Libraries on which this library depends, needed for Linux builds
+# Sort by high-level to low-level
+target_link_libraries(llrender 
+    llimage 
+    ${FREETYPE_LIBRARIES}
+    ${OPENGL_LIBRARIES})
diff --git a/indra/llui/CMakeLists.txt b/indra/llui/CMakeLists.txt
index 32118e8a69..5de8dc76af 100644
--- a/indra/llui/CMakeLists.txt
+++ b/indra/llui/CMakeLists.txt
@@ -141,3 +141,14 @@ set_source_files_properties(${llui_HEADER_FILES}
 list(APPEND llui_SOURCE_FILES ${llui_HEADER_FILES})
 
 add_library (llui ${llui_SOURCE_FILES})
+# Libraries on which this library depends, needed for Linux builds
+# Sort by high-level to low-level
+target_link_libraries(llui
+    llrender
+    llwindow
+    llimage
+    llvfs       # ugh, just for LLDir
+    llxml
+    llcommon    # must be after llimage, llwindow, llrender
+    llmath
+    )
diff --git a/indra/llwindow/CMakeLists.txt b/indra/llwindow/CMakeLists.txt
index afce0c06c3..1ffa4fe3c1 100644
--- a/indra/llwindow/CMakeLists.txt
+++ b/indra/llwindow/CMakeLists.txt
@@ -55,6 +55,13 @@ set(viewer_HEADER_FILES
     llmousehandler.h
     )
 
+# Libraries on which this library depends, needed for Linux builds
+# Sort by high-level to low-level
+set(llwindow_LINK_LIBRARIES
+    ${UI_LIBRARIES}     # for GTK
+    ${SDL_LIBRARY}
+    )
+
 if (DARWIN)
   list(APPEND llwindow_SOURCE_FILES
     llkeyboardmacosx.cpp
@@ -98,6 +105,9 @@ if (WINDOWS)
        lldxhardware.h
        llkeyboardwin32.h
        )
+  list(APPEND llwindow_LINK_LIBRARIES
+       comdlg32     # Common Dialogs for ChooseColor
+       )
 endif (WINDOWS)
 
 if (SOLARIS)
@@ -133,6 +143,7 @@ if (SERVER AND NOT WINDOWS AND NOT DARWIN)
     ${llwindow_SOURCE_FILES}
     ${server_SOURCE_FILES}
     )
+  target_link_libraries (llwindowheadless ${llwindow_LINK_LIBRARIES})
 endif (SERVER AND NOT WINDOWS AND NOT DARWIN)
 
 if (llwindow_HEADER_FILES)
@@ -145,4 +156,6 @@ if (VIEWER)
     ${llwindow_SOURCE_FILES}
     ${viewer_SOURCE_FILES}
     )
+  target_link_libraries (llwindow ${llwindow_LINK_LIBRARIES})
 endif (VIEWER)
+
diff --git a/indra/llxml/CMakeLists.txt b/indra/llxml/CMakeLists.txt
index 487c5b9a8a..dc7787beea 100644
--- a/indra/llxml/CMakeLists.txt
+++ b/indra/llxml/CMakeLists.txt
@@ -35,8 +35,10 @@ set_source_files_properties(${llxml_HEADER_FILES}
 list(APPEND llxml_SOURCE_FILES ${llxml_HEADER_FILES})
 
 add_library (llxml ${llxml_SOURCE_FILES})
-target_link_libraries(
-    llxml
+# Libraries on which this library depends, needed for Linux builds
+# Sort by high-level to low-level
+target_link_libraries( llxml
+    llmath
     ${BOOST_SIGNALS_LIBRARY}
     ${EXPAT_LIBRARIES}
     )
-- 
cgit v1.2.3