1- cmake_minimum_required (VERSION 3.5 )
1+ cmake_minimum_required (VERSION 3.20 )
22cmake_policy (SET CMP0079 NEW ) # for line 67
33
4- set (PROJECT ImGuiFileDialog_App)
5-
6- enable_language (C CXX )
4+ set (PROJECT ImGuiFileDialog_DemoApp)
75project (${PROJECT} CXX )
6+ enable_language (C CXX )
87
9- option (USE_NEW_IMGUI_KEY_SYSTEM "Define the symbol IMGUI_DISABLE_OBSOLETE_KEYIO " ON )
10- option (USE_TEST "Enable tests" ON )
8+ option (USE_TESTS "Enable tests " ON )
9+ option (USE_VISUAL_TESTS "Enable visual tests" ON )
1110
12- option (USE_DIRENT_FILESYSTEM "Enable the default filesystem with dirent" ON )
13- option (USE_STD_FILESYSTEM "Enable std::filesystem use for path and ImGuiFileDialog" OFF )
11+ option (USE_DIRENT_FILESYSTEM "Enable the default filesystem with dirent" OFF )
12+ option (USE_STD_FILESYSTEM "Enable std::filesystem use for path and ImGuiFileDialog" ON )
1413option (USE_BOOST_FILESYSTEM "Enable the demo of custom filesystem here with boost" OFF )
1514
1615## some defines for debug mode (before 3rdparty.cmake)
@@ -60,14 +59,9 @@ endif()
6059
6160add_definitions (${GLFW_DEFINITIONS} )
6261add_definitions (-DIMGUI_DISABLE_OBSOLETE_FUNCTIONS )
63- add_definitions (-DCUSTOM_IMGUIFILEDIALOG_CONFIG= "${CMAKE_CURRENT_SOURCE_DIR} /src/headers/CustomImGuiFileDialogConfig.h" )
6462add_definitions (-DCUSTOM_IMWIDGETS_CONFIG= "${CMAKE_CURRENT_SOURCE_DIR} /src/headers/CustomImWidgetsConfig.h" )
6563add_definitions (-D_CRT_SECURE_NO_WARNINGS )
6664
67- if (USE_NEW_IMGUI_KEY_SYSTEM)
68- add_definitions (-DIMGUI_DISABLE_OBSOLETE_KEYIO )
69- endif ()
70-
7165if (USE_BOOST_FILESYSTEM)
7266 file (GLOB BOOST_SOURCES ${CMAKE_CURRENT_SOURCE_DIR} /FileSystemBoost.hpp )
7367 source_group (src \\Boost FILES ${BOOST_SOURCES} )
@@ -118,7 +112,7 @@ include_directories(
118112 ${BOOST_FILESYSTEM_INCLUDE_DIRS}
119113)
120114
121- if (USE_TEST )
115+ if (USE_TESTS )
122116 add_definitions (-DNEED_TO_BE_PUBLIC_FOR_TESTS )
123117endif ()
124118
@@ -150,6 +144,9 @@ else()
150144 add_executable (${PROJECT} MACOSX_BUNDLE ${SOURCES} )
151145endif ()
152146
147+ target_compile_definitions (ImGuiFileDialog PRIVATE -DCUSTOM_IMGUIFILEDIALOG_CONFIG= "${CMAKE_CURRENT_SOURCE_DIR} /src/headers/CustomImGuiFileDialogConfig.h" )
148+ target_compile_definitions (${PROJECT} PRIVATE -DCUSTOM_IMGUIFILEDIALOG_CONFIG= "${CMAKE_CURRENT_SOURCE_DIR} /src/headers/CustomImGuiFileDialogConfig.h" )
149+
153150set (CMAKE_CXX_STANDARD_REQUIRED ON )
154151set (CMAKE_CXX_EXTENSIONS OFF )
155152
@@ -232,11 +229,19 @@ target_include_directories(ImGuiFileDialog PRIVATE
232229 ${CMAKE_CURRENT_SOURCE_DIR}
233230)
234231
235- if (USE_TEST )
232+ if (USE_TESTS )
236233 enable_testing ()
237234 add_subdirectory (${CMAKE_CURRENT_SOURCE_DIR} /tests )
238235endif ()
239236
240237set_target_properties (${PROJECT} PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${FINAL_BIN_DIR} " )
241238set_target_properties (${PROJECT} PROPERTIES RUNTIME_OUTPUT_DIRECTORY_DEBUG "${FINAL_BIN_DIR} " )
242239set_target_properties (${PROJECT} PROPERTIES RUNTIME_OUTPUT_DIRECTORY_RELEASE "${FINAL_BIN_DIR} " )
240+
241+ if (USE_VISUAL_TESTS)
242+ if (${CMAKE_SYSTEM_NAME} STREQUAL "Android" )
243+ # need to test it on android
244+ else ()
245+ add_subdirectory (${CMAKE_CURRENT_SOURCE_DIR} /visualTests )
246+ endif ()
247+ endif ()
0 commit comments