Merge commit '004534c8e7e16c6414b6f7203be81829b0650411' as 'deps/nfde'
This commit is contained in:
79
deps/nfde/src/CMakeLists.txt
vendored
Normal file
79
deps/nfde/src/CMakeLists.txt
vendored
Normal file
@ -0,0 +1,79 @@
|
||||
set(TARGET_NAME nfd)
|
||||
|
||||
set(PUBLIC_HEADER_FILES
|
||||
include/nfd.h
|
||||
include/nfd.hpp)
|
||||
|
||||
set(SOURCE_FILES ${PUBLIC_HEADER_FILES})
|
||||
|
||||
if(nfd_PLATFORM STREQUAL PLATFORM_WIN32)
|
||||
list(APPEND SOURCE_FILES nfd_win.cpp)
|
||||
endif()
|
||||
|
||||
if(nfd_PLATFORM STREQUAL PLATFORM_LINUX)
|
||||
find_package(PkgConfig REQUIRED)
|
||||
# for Linux, we support GTK3 and xdg-desktop-portal
|
||||
option(NFD_PORTAL "Use xdg-desktop-portal instead of GTK" OFF)
|
||||
if(NOT NFD_PORTAL)
|
||||
pkg_check_modules(GTK3 REQUIRED gtk+-3.0)
|
||||
message("Using GTK version: ${GTK3_VERSION}")
|
||||
list(APPEND SOURCE_FILES nfd_gtk.cpp)
|
||||
else()
|
||||
pkg_check_modules(DBUS REQUIRED dbus-1)
|
||||
message("Using DBUS version: ${DBUS_VERSION}")
|
||||
list(APPEND SOURCE_FILES nfd_portal.cpp)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(nfd_PLATFORM STREQUAL PLATFORM_MACOS)
|
||||
find_library(APPKIT_LIBRARY AppKit)
|
||||
list(APPEND SOURCE_FILES nfd_cocoa.m)
|
||||
endif()
|
||||
|
||||
# Define the library
|
||||
add_library(${TARGET_NAME} STATIC
|
||||
${SOURCE_FILES})
|
||||
|
||||
# Allow includes from include/
|
||||
target_include_directories(${TARGET_NAME}
|
||||
PUBLIC include/)
|
||||
|
||||
if(nfd_PLATFORM STREQUAL PLATFORM_LINUX)
|
||||
if(NOT NFD_PORTAL)
|
||||
target_include_directories(${TARGET_NAME}
|
||||
PRIVATE ${GTK3_INCLUDE_DIRS})
|
||||
target_link_libraries(${TARGET_NAME}
|
||||
PRIVATE ${GTK3_LIBRARIES})
|
||||
else()
|
||||
target_include_directories(${TARGET_NAME}
|
||||
PRIVATE ${DBUS_INCLUDE_DIRS})
|
||||
target_link_libraries(${TARGET_NAME}
|
||||
PRIVATE ${DBUS_LIBRARIES})
|
||||
target_compile_definitions(${TARGET_NAME}
|
||||
PUBLIC NFD_PORTAL)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(nfd_PLATFORM STREQUAL PLATFORM_MACOS)
|
||||
target_link_libraries(${TARGET_NAME}
|
||||
PRIVATE ${APPKIT_LIBRARY})
|
||||
endif()
|
||||
|
||||
if(nfd_COMPILER STREQUAL COMPILER_MSVC)
|
||||
string(REPLACE "/EHsc" "/EHs-c-" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
|
||||
string(REPLACE "/GR" "/GR-" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
|
||||
set_property(TARGET ${TARGET_NAME} APPEND_STRING PROPERTY STATIC_LIBRARY_OPTIONS /NODEFAULTLIB)
|
||||
endif()
|
||||
|
||||
if(nfd_COMPILER STREQUAL COMPILER_CLANGCL)
|
||||
string(REPLACE "/EHsc" "/EHs-c-" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
|
||||
string(REPLACE "/GR" "/GR-" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
|
||||
endif()
|
||||
|
||||
if(nfd_COMPILER STREQUAL COMPILER_GNU)
|
||||
target_compile_options(${TARGET_NAME} PRIVATE -nostdlib -fno-exceptions -fno-rtti)
|
||||
endif()
|
||||
|
||||
set_target_properties(${TARGET_NAME} PROPERTIES PUBLIC_HEADER "${PUBLIC_HEADER_FILES}")
|
||||
|
||||
install(TARGETS ${TARGET_NAME} LIBRARY DESTINATION lib ARCHIVE DESTINATION lib PUBLIC_HEADER DESTINATION include)
|
Reference in New Issue
Block a user