From 2f1d21eea6a3a78b6e91144149879893b4156723 Mon Sep 17 00:00:00 2001 From: Robert MacGregor Date: Sun, 22 Jan 2023 21:13:39 -0500 Subject: [PATCH] * Feature: Re-add NFD support. --- Engine/lib/CMakeLists.txt | 2 ++ Engine/lib/nativeFileDialogs/CMakeLists.txt | 21 +++++++++++++++++++++ Engine/source/CMakeLists.txt | 6 +++++- 3 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 Engine/lib/nativeFileDialogs/CMakeLists.txt diff --git a/Engine/lib/CMakeLists.txt b/Engine/lib/CMakeLists.txt index fe9e49374..8e5e6b4fe 100644 --- a/Engine/lib/CMakeLists.txt +++ b/Engine/lib/CMakeLists.txt @@ -1,3 +1,5 @@ +add_subdirectory(nativeFileDialogs ${CMAKE_BINARY_DIR}/temp/nfd EXCLUDE_FROM_ALL) + # Ask CMake to perform builds in a temporary directory for all of these. # We also use EXCLUDE_FROM_ALL to ensure we only build and install what we want set(SDL_SHARED on CACHE BOOL "" FORCE) diff --git a/Engine/lib/nativeFileDialogs/CMakeLists.txt b/Engine/lib/nativeFileDialogs/CMakeLists.txt new file mode 100644 index 000000000..10d059093 --- /dev/null +++ b/Engine/lib/nativeFileDialogs/CMakeLists.txt @@ -0,0 +1,21 @@ +option(TORQUE_USE_ZENITY "Use Zenity" ON) + +set(TORQUE_NFD_ROOT "${CMAKE_SOURCE_DIR}/Engine/lib/nativeFileDialogs") +set(TORQUE_NFD_COMMON_SOURCES "${TORQUE_NFD_ROOT}/nfd_common.c") +set(TORQUE_NFD_INCLUDE_DIRECTORIES "${TORQUE_NFD_ROOT}" "${TORQUE_NFD_ROOT}/include") + +if (APPLE) + set(TORQUE_NFD_SOURCES ${TORQUE_NFD_COMMON_SOURCES} "${TORQUE_NFD_ROOT}/nfd_cocoa.m") +elseif (UNIX) + if (TORQUE_USE_ZENITY) + set(TORQUE_NFD_SOURCES ${TORQUE_NFD_COMMON_SOURCES} "${TORQUE_NFD_ROOT}/nfd_zenity.c") + else() + set(TORQUE_NFD_SOURCES ${TORQUE_NFD_COMMON_SOURCES} "${TORQUE_NFD_ROOT}/nfd_gtk.c") + endif() + +elseif (WIN32) + set(TORQUE_NFD_SOURCES ${TORQUE_NFD_COMMON_SOURCES} "${TORQUE_NFD_ROOT}/nfd_win.cpp") +endif(APPLE) + +add_library(nativeFileDialogs STATIC ${TORQUE_NFD_SOURCES}) +target_include_directories(nativeFileDialogs PUBLIC ${TORQUE_NFD_INCLUDE_DIRECTORIES}) diff --git a/Engine/source/CMakeLists.txt b/Engine/source/CMakeLists.txt index 0fa6afe91..bd34e37bc 100644 --- a/Engine/source/CMakeLists.txt +++ b/Engine/source/CMakeLists.txt @@ -110,6 +110,10 @@ torqueAddSourceDirectories("console") # Handle Platform torqueAddSourceDirectories("platform" "platform/threads" "platform/async" "platform/input" "platform/output") + +torqueAddSourceDirectories("platform/nativeDialogs") + +set(TORQUE_LINK_LIBRARIES ${TORQUE_LINK_LIBRARIES} nativeFileDialogs) # Handle T3D torqueAddSourceDirectories("T3D/fps" "T3D/fx" "T3D/vehicles" "T3D/physics" @@ -282,7 +286,7 @@ foreach (TORQUE_MODULE_PATH ${TORQUE_MODULE_PATHS}) include(${TORQUE_MODULE_SCRIPT}) # Add this script's collected files to our Engine group - source_group(TREE "${CMAKE_SOURCE_DIR}/Engine/source" PREFIX "Engine" FILES ${TORQUE_SOURCE_FILES}) + source_group(TREE "${CMAKE_SOURCE_DIR}/Engine" PREFIX "Engine" FILES ${TORQUE_SOURCE_FILES}) set(TORQUE_SOURCE_FILES_TEMPORARY ${TORQUE_SOURCE_FILES_TEMPORARY} ${TORQUE_SOURCE_FILES}) set(TORQUE_SOURCE_FILES "")