diff options
| -rw-r--r-- | indra/llwindow/CMakeLists.txt | 117 | ||||
| -rw-r--r-- | indra/newview/CMakeLists.txt | 71 |
2 files changed, 155 insertions, 33 deletions
diff --git a/indra/llwindow/CMakeLists.txt b/indra/llwindow/CMakeLists.txt index 08b3df87ab..13a7592e8f 100644 --- a/indra/llwindow/CMakeLists.txt +++ b/indra/llwindow/CMakeLists.txt @@ -48,6 +48,46 @@ set(viewer_HEADER_FILES llmousehandler.h ) +# Platform-specific files for IDE visibility (excluded from build on other platforms) +set(macosx_SOURCE_FILES + llkeyboardmacosx.cpp + llwindowmacosx.cpp + llwindowmacosx-objc.mm + llopenglview-objc.mm + ) + +set(macosx_HEADER_FILES + llkeyboardmacosx.h + llwindowmacosx.h + llwindowmacosx-objc.h + llopenglview-objc.h + llappdelegate-objc.h + ) + +set(linux_SOURCE_FILES + llkeyboardsdl.cpp + llwindowsdl.cpp + ) + +set(linux_HEADER_FILES + llkeyboardsdl.h + llwindowsdl.h + ) + +set(windows_SOURCE_FILES + llwindowwin32.cpp + lldxhardware.cpp + llkeyboardwin32.cpp + lldragdropwin32.cpp + ) + +set(windows_HEADER_FILES + llwindowwin32.h + lldxhardware.h + llkeyboardwin32.h + lldragdropwin32.h + ) + set(llwindow_LINK_LIBRARIES llcommon llimage @@ -63,14 +103,8 @@ set(llwindow_LINK_LIBRARIES # Libraries on which this library depends, needed for Linux builds # Sort by high-level to low-level if (LINUX) - list(APPEND viewer_SOURCE_FILES - llkeyboardsdl.cpp - llwindowsdl.cpp - ) - list(APPEND viewer_HEADER_FILES - llkeyboardsdl.h - llwindowsdl.h - ) + list(APPEND viewer_SOURCE_FILES ${linux_SOURCE_FILES}) + list(APPEND viewer_HEADER_FILES ${linux_HEADER_FILES}) if (BUILD_HEADLESS) set(llwindowheadless_LINK_LIBRARIES @@ -88,19 +122,8 @@ if (LINUX) endif (LINUX) if (DARWIN) - list(APPEND llwindow_SOURCE_FILES - llkeyboardmacosx.cpp - llwindowmacosx.cpp - llwindowmacosx-objc.mm - llopenglview-objc.mm - ) - list(APPEND llwindow_HEADER_FILES - llkeyboardmacosx.h - llwindowmacosx.h - llwindowmacosx-objc.h - llopenglview-objc.h - llappdelegate-objc.h - ) + list(APPEND llwindow_SOURCE_FILES ${macosx_SOURCE_FILES}) + list(APPEND llwindow_HEADER_FILES ${macosx_HEADER_FILES}) # We use a bunch of deprecated system APIs. set_source_files_properties( @@ -113,18 +136,8 @@ endif (DARWIN) if (WINDOWS) - list(APPEND llwindow_SOURCE_FILES - llwindowwin32.cpp - lldxhardware.cpp - llkeyboardwin32.cpp - lldragdropwin32.cpp - ) - list(APPEND llwindow_HEADER_FILES - llwindowwin32.h - lldxhardware.h - llkeyboardwin32.h - lldragdropwin32.h - ) + list(APPEND llwindow_SOURCE_FILES ${windows_SOURCE_FILES}) + list(APPEND llwindow_HEADER_FILES ${windows_HEADER_FILES}) list(APPEND llwindow_LINK_LIBRARIES comdlg32 # Common Dialogs for ChooseColor ole32 @@ -167,10 +180,48 @@ endif (llwindow_HEADER_FILES) list(APPEND viewer_SOURCE_FILES ${viewer_HEADER_FILES}) + # Collect all platform files for IDE visibility, excluding already-added current platform + set(ide_visibility_files "") + if (NOT DARWIN) + list(APPEND ide_visibility_files ${macosx_SOURCE_FILES} ${macosx_HEADER_FILES}) + endif() + if (NOT LINUX) + list(APPEND ide_visibility_files ${linux_SOURCE_FILES} ${linux_HEADER_FILES}) + endif() + if (NOT WINDOWS) + list(APPEND ide_visibility_files ${windows_SOURCE_FILES} ${windows_HEADER_FILES}) + endif() + add_library (llwindow ${llwindow_SOURCE_FILES} ${viewer_SOURCE_FILES} + # Add non-platform files for IDE visibility only + ${ide_visibility_files} + ) + +# Mark non-platform files as excluded from build +if (WINDOWS) + set_source_files_properties( + ${macosx_SOURCE_FILES} + ${linux_SOURCE_FILES} + PROPERTIES + HEADER_FILE_ONLY TRUE + ) +elseif (DARWIN) + set_source_files_properties( + ${windows_SOURCE_FILES} + ${linux_SOURCE_FILES} + PROPERTIES + HEADER_FILE_ONLY TRUE + ) +elseif (LINUX) + set_source_files_properties( + ${macosx_SOURCE_FILES} + ${windows_SOURCE_FILES} + PROPERTIES + HEADER_FILE_ONLY TRUE ) +endif() if (SDL_FOUND) set_property(TARGET llwindow diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index 18a40bcf1e..663b932f3b 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -1495,6 +1495,38 @@ if (DARWIN) list(APPEND viewer_SOURCE_FILES ${viewer_RESOURCE_FILES}) endif (DARWIN) +# Platform-specific files for IDE visibility (excluded from build on other platforms) +set(macosx_viewer_SOURCE_FILES + llappviewermacosx.cpp + llappviewermacosx-objc.mm + llfilepicker_mac.mm + llappdelegate-objc.mm + ) + +set(macosx_viewer_HEADER_FILES + llappviewermacosx.h + llappviewermacosx-objc.h + llfilepicker_mac.h + ) + +set(linux_viewer_SOURCE_FILES + llappviewerlinux.cpp + llappviewerlinux_api_dbus.cpp + ) + +set(linux_viewer_HEADER_FILES + ) + +set(windows_viewer_SOURCE_FILES + llappviewerwin32.cpp + llwindebug.cpp + ) + +set(windows_viewer_HEADER_FILES + llappviewerwin32.h + llwindebug.h + ) + if (LINUX) LIST(APPEND viewer_SOURCE_FILES llappviewerlinux.cpp) set_source_files_properties( @@ -1651,6 +1683,45 @@ if (WINDOWS) endif (WINDOWS) +# Add all platform-specific files to the target for IDE visibility +# Collect non-platform files for IDE visibility only +set(ide_visibility_files "") +if (NOT DARWIN) + list(APPEND ide_visibility_files ${macosx_viewer_SOURCE_FILES} ${macosx_viewer_HEADER_FILES}) +endif() +if (NOT LINUX) + list(APPEND ide_visibility_files ${linux_viewer_SOURCE_FILES} ${linux_viewer_HEADER_FILES}) +endif() +if (NOT WINDOWS) + list(APPEND ide_visibility_files ${windows_viewer_SOURCE_FILES} ${windows_viewer_HEADER_FILES}) +endif() + +list(APPEND viewer_SOURCE_FILES ${ide_visibility_files}) + +# Mark non-platform files as excluded from build +if (WINDOWS) + set_source_files_properties( + ${macosx_viewer_SOURCE_FILES} + ${linux_viewer_SOURCE_FILES} + PROPERTIES + HEADER_FILE_ONLY TRUE + ) +elseif (DARWIN) + set_source_files_properties( + ${windows_viewer_SOURCE_FILES} + ${linux_viewer_SOURCE_FILES} + PROPERTIES + HEADER_FILE_ONLY TRUE + ) +elseif (LINUX) + set_source_files_properties( + ${macosx_viewer_SOURCE_FILES} + ${windows_viewer_SOURCE_FILES} + PROPERTIES + HEADER_FILE_ONLY TRUE + ) +endif() + # Add the xui files. This is handy for searching for xui elements # from within the IDE. file(GLOB_RECURSE viewer_XUI_FILES LIST_DIRECTORIES FALSE |
