From 1af7e5ece94df61a807b14fba4a5d92796919775 Mon Sep 17 00:00:00 2001 From: Hjalmar Date: Sat, 10 Aug 2024 15:25:13 +0200 Subject: [PATCH 1/7] Added Cmake Files to build nfd --- build/cmake/CMakeLists.txt | 5 +++++ build/cmake/nfd.cmake | 21 +++++++++++++++++++++ 2 files changed, 26 insertions(+) create mode 100644 build/cmake/CMakeLists.txt create mode 100644 build/cmake/nfd.cmake diff --git a/build/cmake/CMakeLists.txt b/build/cmake/CMakeLists.txt new file mode 100644 index 0000000..6ca6f00 --- /dev/null +++ b/build/cmake/CMakeLists.txt @@ -0,0 +1,5 @@ +cmake_minimum_required(VERSION 3.22.2) + +project(nfd_build) + +include(nfd.cmake) \ No newline at end of file diff --git a/build/cmake/nfd.cmake b/build/cmake/nfd.cmake new file mode 100644 index 0000000..f445256 --- /dev/null +++ b/build/cmake/nfd.cmake @@ -0,0 +1,21 @@ +cmake_minimum_required(VERSION 3.10) + +# Project declaration +project(nfd) + +# Set output directories for the build types +set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR}/../lib/Debug/x64) +set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/../lib/Release/x64) + +# Set source files +set(SOURCE_FILES + ../../src/nfd_win.cpp + ../../src/nfd_common.c +) + +# Include directories +include_directories(../../src/include) + + +# Define the library target +add_library(nfd STATIC ${SOURCE_FILES}) From ed2cebc8457f0152efbe8f644815999b5c53c2e2 Mon Sep 17 00:00:00 2001 From: Hjalmar Date: Sat, 10 Aug 2024 15:27:28 +0200 Subject: [PATCH 2/7] changed output dir for build --- build/cmake/CMakeLists.txt | 1 + build/cmake/nfd.cmake | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/build/cmake/CMakeLists.txt b/build/cmake/CMakeLists.txt index 6ca6f00..4aa278e 100644 --- a/build/cmake/CMakeLists.txt +++ b/build/cmake/CMakeLists.txt @@ -2,4 +2,5 @@ cmake_minimum_required(VERSION 3.22.2) project(nfd_build) + include(nfd.cmake) \ No newline at end of file diff --git a/build/cmake/nfd.cmake b/build/cmake/nfd.cmake index f445256..06b4166 100644 --- a/build/cmake/nfd.cmake +++ b/build/cmake/nfd.cmake @@ -4,8 +4,8 @@ cmake_minimum_required(VERSION 3.10) project(nfd) # Set output directories for the build types -set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR}/../lib/Debug/x64) -set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/../lib/Release/x64) +set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG ../../lib/Debug/x64) +set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE ../../lib/Release/x64) # Set source files set(SOURCE_FILES From 7b006a354355c0a2a505f93f3ebbad5a03d89d79 Mon Sep 17 00:00:00 2001 From: Hjalmar Date: Sat, 10 Aug 2024 16:42:16 +0200 Subject: [PATCH 3/7] configured, depending on platform and building a test --- build/cmake/CMakeLists.txt | 6 ++++- build/cmake/nfd.cmake | 37 +++++++++++++++++++++++++------ build/cmake/test_opendialog.cmake | 8 +++++++ 3 files changed, 43 insertions(+), 8 deletions(-) create mode 100644 build/cmake/test_opendialog.cmake diff --git a/build/cmake/CMakeLists.txt b/build/cmake/CMakeLists.txt index 4aa278e..5c7858a 100644 --- a/build/cmake/CMakeLists.txt +++ b/build/cmake/CMakeLists.txt @@ -3,4 +3,8 @@ cmake_minimum_required(VERSION 3.22.2) project(nfd_build) -include(nfd.cmake) \ No newline at end of file +message("Building For ${CMAKE_SYSTEM_NAME}") + + +include(nfd.cmake) +include(test_opendialog.cmake) \ No newline at end of file diff --git a/build/cmake/nfd.cmake b/build/cmake/nfd.cmake index 06b4166..ff75e5a 100644 --- a/build/cmake/nfd.cmake +++ b/build/cmake/nfd.cmake @@ -3,18 +3,41 @@ cmake_minimum_required(VERSION 3.10) # Project declaration project(nfd) +set(SOURCE_PATH ../../src) # Set output directories for the build types -set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG ../../lib/Debug/x64) -set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE ../../lib/Release/x64) +set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ../../lib/${CMAKE_BUILD_TYPE}/) # Set source files -set(SOURCE_FILES - ../../src/nfd_win.cpp - ../../src/nfd_common.c -) +if(CMAKE_SYSTEM_NAME STREQUAL "Windows") + set(SOURCE_FILES + ${SOURCE_PATH}/nfd_win.cpp + ${SOURCE_PATH}/nfd_common.c + ) +elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux") + + if(USE_ZENITY) + set(SOURCE_FILES + ../../src/nfd_zenity.c + ../../src/nfd_common.c + ) + else() + set(SOURCE_FILES + ../../src/nfd_gtk.c + ../../src/nfd_common.c + ) + endif() + +elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin") # macOS is detected as "Darwin" + set(SOURCE_FILES + ../../src/nfd_cocoa.m # Objective-C file for Cocoa + ../../src/nfd_common.c + ) +else() + message(FATAL_ERROR "Unsupported platform ${CMAKE_SYSTEM_NAME}") +endif() # Include directories -include_directories(../../src/include) +include_directories( ${SOURCE_PATH}/include) # Define the library target diff --git a/build/cmake/test_opendialog.cmake b/build/cmake/test_opendialog.cmake new file mode 100644 index 0000000..87d3c7c --- /dev/null +++ b/build/cmake/test_opendialog.cmake @@ -0,0 +1,8 @@ +cmake_minimum_required(VERSION 3.22.2) + +project( test_opendialog) + +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ../../bin/${CMAKE_BUILD_TYPE}/) + +add_executable(test_opendialog ../../test/test_opendialog.c) +target_link_libraries(test_opendialog nfd) \ No newline at end of file From 4fcd2d51116afb107649932a1ce5b93f10f3f317 Mon Sep 17 00:00:00 2001 From: Hjalmar Date: Sat, 10 Aug 2024 16:44:26 +0200 Subject: [PATCH 4/7] Added the other tests --- build/cmake/test_opendialogmultiple.cmake | 8 ++++++++ build/cmake/test_pickfolder.cmake | 8 ++++++++ build/cmake/test_savedialog.cmake | 8 ++++++++ 3 files changed, 24 insertions(+) create mode 100644 build/cmake/test_opendialogmultiple.cmake create mode 100644 build/cmake/test_pickfolder.cmake create mode 100644 build/cmake/test_savedialog.cmake diff --git a/build/cmake/test_opendialogmultiple.cmake b/build/cmake/test_opendialogmultiple.cmake new file mode 100644 index 0000000..a3a8882 --- /dev/null +++ b/build/cmake/test_opendialogmultiple.cmake @@ -0,0 +1,8 @@ +cmake_minimum_required(VERSION 3.22.2) + +project( test_opendialogmultiple) + +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ../../bin/${CMAKE_BUILD_TYPE}/) + +add_executable(test_opendialogmultiple ../../test/test_opendialogmultiple.c) +target_link_libraries(test_opendialogmultiple nfd) \ No newline at end of file diff --git a/build/cmake/test_pickfolder.cmake b/build/cmake/test_pickfolder.cmake new file mode 100644 index 0000000..1dced68 --- /dev/null +++ b/build/cmake/test_pickfolder.cmake @@ -0,0 +1,8 @@ +cmake_minimum_required(VERSION 3.22.2) + +project( test_pickfolder) + +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ../../bin/${CMAKE_BUILD_TYPE}/) + +add_executable(test_pickfolder ../../test/test_pickfolder.c) +target_link_libraries(test_pickfolder nfd) \ No newline at end of file diff --git a/build/cmake/test_savedialog.cmake b/build/cmake/test_savedialog.cmake new file mode 100644 index 0000000..7f3c72e --- /dev/null +++ b/build/cmake/test_savedialog.cmake @@ -0,0 +1,8 @@ +cmake_minimum_required(VERSION 3.22.2) + +project( test_savedialog) + +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ../../bin/${CMAKE_BUILD_TYPE}/) + +add_executable(test_savedialog ../../test/test_savedialog.c) +target_link_libraries(test_savedialog nfd) \ No newline at end of file From 5cc05047d66f034cd0b17173e5f717773b3c4609 Mon Sep 17 00:00:00 2001 From: Hjalmar Date: Sat, 10 Aug 2024 16:51:14 +0200 Subject: [PATCH 5/7] Added All the test build to the CmakeLists file --- build/cmake/CMakeLists.txt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/build/cmake/CMakeLists.txt b/build/cmake/CMakeLists.txt index 5c7858a..107a8cb 100644 --- a/build/cmake/CMakeLists.txt +++ b/build/cmake/CMakeLists.txt @@ -7,4 +7,7 @@ message("Building For ${CMAKE_SYSTEM_NAME}") include(nfd.cmake) -include(test_opendialog.cmake) \ No newline at end of file +include(test_opendialog.cmake) +include(test_opendialogmultiple.cmake) +include(test_pickfolder.cmake) +include(test_savedialog.cmake) From 3d2ccab184f39f430fb468a704451cdb44377afb Mon Sep 17 00:00:00 2001 From: Hjalmar Date: Sat, 10 Aug 2024 17:13:47 +0200 Subject: [PATCH 6/7] documentation --- build/cmake/nfd.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/cmake/nfd.cmake b/build/cmake/nfd.cmake index ff75e5a..0fff2a0 100644 --- a/build/cmake/nfd.cmake +++ b/build/cmake/nfd.cmake @@ -15,7 +15,7 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Windows") ${SOURCE_PATH}/nfd_common.c ) elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux") - + message("Use Zenity: ${USE_ZENITY}") if(USE_ZENITY) set(SOURCE_FILES ../../src/nfd_zenity.c From fbe85f278f0e37afe8fdf0ece1795de536c4a353 Mon Sep 17 00:00:00 2001 From: Hjalmar Date: Sat, 10 Aug 2024 17:18:06 +0200 Subject: [PATCH 7/7] added the folder /build/cmake/build to gitignore since you do not want the build files cmake generates to be tracked by git --- .gitignore | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.gitignore b/.gitignore index 5f144cb..2c5e85e 100644 --- a/.gitignore +++ b/.gitignore @@ -25,6 +25,10 @@ *.x86_64 *.hex + +# Ignore the buildfiles that cmake generates in build/cmake/build +build/cmake/build + ## Ignore Visual Studio temporary files, build results, and ## files generated by popular Visual Studio add-ons. # User-specific files