summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrey Kleshchev <117672381+akleshchev@users.noreply.github.com>2026-05-30 01:27:29 +0300
committerAndrey Kleshchev <117672381+akleshchev@users.noreply.github.com>2026-06-04 01:31:21 +0300
commit0797d76b7aec1e1b8fe45866cdb61147b3f531e5 (patch)
tree0108de595f194a82761bb4d19fe5df4fdc8eba20
parent3e4502cbfa5b9b1b749ea52ca0168f90ee7a5e98 (diff)
Make platform specific files visible in the IDE
-rw-r--r--indra/llwindow/CMakeLists.txt117
-rw-r--r--indra/newview/CMakeLists.txt71
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