set(SRCS include/nfd.h src/common.h src/nfd_common.c src/nfd_common.h ) add_library(nativefiledialog ${SRCS}) target_include_directories(nativefiledialog PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/include" "${CMAKE_CURRENT_SOURCE_DIR}/src") target_include_directories(nativefiledialog INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}/include") if(WIN32) target_sources(nativefiledialog PRIVATE src/nfd_win.cpp) elseif(APPLE) target_sources(nativefiledialog PRIVATE src/nfd_cocoa.m) else() FIND_PACKAGE(PkgConfig REQUIRED) PKG_CHECK_MODULES(GTK3 REQUIRED gtk+-3.0) if(GTK3_FOUND) message("Using GTK for nativefiledialog") target_sources(nativefiledialog PRIVATE src/nfd_gtk.c) target_include_directories(nativefiledialog PRIVATE ${GTK3_INCLUDE_DIRS}) target_link_libraries(nativefiledialog PRIVATE ${GTK3_LIBRARIES}) else() message(WARNING "Unknown platform for nativefiledialog") endif() endif()