diff --git a/CMakeSettings.cmake b/CMakeSettings.cmake index 949ff1a..86a50c0 100644 --- a/CMakeSettings.cmake +++ b/CMakeSettings.cmake @@ -1,6 +1,6 @@ if(CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME) - set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin) +# set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin) # Export compile command -> better tool integration. set(CMAKE_EXPORT_COMPILE_COMMANDS ON) @@ -10,5 +10,12 @@ if(CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) - set_property(GLOBAL PROPERTY USE_FOLDERS ON) + if (MSVC) + include(cmake/MSVCSettings.cmake) + else() + + endif() + + +# set_property(GLOBAL PROPERTY USE_FOLDERS ON) endif() diff --git a/FetchBoost.cmake b/FetchBoost.cmake index d24dde2..136eeb6 100644 --- a/FetchBoost.cmake +++ b/FetchBoost.cmake @@ -15,7 +15,6 @@ if (NOT DEFINED BOOST_GIT_TAG) message(FATAL_ERROR "BOOST_GIT_TAG is not defined.\n see https://github.com/boostorg/boost and grab a release tag.\n example: set(BOOST_GIT_TAG boost-1.81.0)") endif() - if (NOT DEFINED BOOST_INCLUDE_LIBRARIES) message(FATAL_ERROR "BOOST_INCLUDE_LIBRARIES is not defined. \n example: set(BOOST_INCLUDE_LIBRARIES thread filesystem system program_options dll pfr).") endif() diff --git a/FetchFTXUI.cmake b/FetchFTXUI.cmake new file mode 100644 index 0000000..88e57d4 --- /dev/null +++ b/FetchFTXUI.cmake @@ -0,0 +1,29 @@ +# https://arthursonzogni.github.io/FTXUI/#build-cmake +# +# usage: +# FetchContent_MakeAvailable(ftxui) +# target_link_libraries(${PROJECT_NAME} +# PRIVATE ftxui::screen +# PRIVATE ftxui::dom +# PRIVATE ftxui::component++ +# ) + + +if (NOT DEFINED FTXUI_GIT_TAG) + message(FATAL_ERROR "FTXUI_GIT_TAG is not defined.\n see https://github.com/ArthurSonzogni/ftxui and grab a release tag.\n example: set(FTXUI_GIT_TAG v3.0.0)") +endif() + +FetchContent_Declare( + ftxui + GIT_REPOSITORY https://github.com/ArthurSonzogni/ftxui + GIT_TAG ${FTXUI_GIT_TAG} + ) + +FetchContent_GetProperties(ftxui) +if(NOT ftxui_POPULATED) + FetchContent_Populate(ftxui) + add_subdirectory(${ftxui_SOURCE_DIR} ${ftxui_BINARY_DIR} EXCLUDE_FROM_ALL) +endif() + +include(${CMAKE_SOURCE_DIR}/cmake/Utils.cmake) +print_git_tag(${FTXUI_GIT_TAG}) diff --git a/Fetchcpr.cmake b/Fetchcpr.cmake new file mode 100644 index 0000000..01bd431 --- /dev/null +++ b/Fetchcpr.cmake @@ -0,0 +1,17 @@ +# usage: +# FetchContent_MakeAvailable(cpr) +# target_link_libraries(${PROJECT_NAME} PRIVATE cpr::cpr) + +if (NOT DEFINED CPR_GIT_TAG) + message(FATAL_ERROR "CPR_GIT_TAG is not defined.\n see https://github.com/libcpr/cpr and grab a release tag.\n example: set(CPR_GIT_TAG 1.10.2)") +endif() + + +FetchContent_Declare( + cpr + GIT_REPOSITORY https://github.com/libcpr/cpr.git + GIT_TAG ${CPR_GIT_TAG} +) + +include(${CMAKE_SOURCE_DIR}/cmake/Utils.cmake) +print_git_tag(${CPR_GIT_TAG}) diff --git a/MSVCSettings.cmake b/MSVCSettings.cmake new file mode 100644 index 0000000..139597f --- /dev/null +++ b/MSVCSettings.cmake @@ -0,0 +1,2 @@ + + diff --git a/Utils.cmake b/Utils.cmake index 0037317..32f100a 100644 --- a/Utils.cmake +++ b/Utils.cmake @@ -8,4 +8,4 @@ macro(print_git_tag GIT_TAG) # print message message(STATUS "${_CURRENT_FILENAME}:> Fetching Version-[${GIT_TAG}]") -endmacro() \ No newline at end of file +endmacro()