diff --git a/.cspell/words.txt b/.cspell/words.txt index 4984fb0..790238d 100644 --- a/.cspell/words.txt +++ b/.cspell/words.txt @@ -127,6 +127,7 @@ icns icudata icui18n icuuc +inno iostreams iphlpapi istream_reader diff --git a/README.md b/README.md index d0ad617..5163550 100644 --- a/README.md +++ b/README.md @@ -29,6 +29,8 @@ All builds are orchestrated through project scripts โ€” **direct CMake invocatio - **Development & Integration** - ๐Ÿ’  Optional **Flutter embedding** for hybrid C++/Flutter UIs - ๐Ÿงผ Integrated with **clangd**, **clang-format**, and **clang-tidy** for modern IDEs and CI + - ๐ŸชŸ **Inno Setup** integration for automated Windows installer generation + --- diff --git a/src/CMakeLists.txt_ b/src/CMakeLists.txt_ index a91ea67..cb1ae21 100644 --- a/src/CMakeLists.txt_ +++ b/src/CMakeLists.txt_ @@ -120,7 +120,7 @@ if(PROJECT_BUILD) @ONLY ) - if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}/${PROJECT_NAME}.iss.in") + if (PROJECT_IS_MINGW AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}/${PROJECT_NAME}.iss.in") configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}/${PROJECT_NAME}.iss.in ${PROJECT_DIST_DIR}/../${PROJECT_NAME}.iss @@ -128,6 +128,14 @@ if(PROJECT_BUILD) ) endif() + if (PROJECT_IS_DARWIN AND EXISTS "${CMAKE_SOURCE_DIR}/${PROJECT_NAME}/Info.plist.in") + configure_file( + ${CMAKE_SOURCE_DIR}/${PROJECT_NAME}/Info.plist.in + ${CMAKE_SOURCE_DIR}/${PROJECT_NAME}/Info.plist + @ONLY + ) + endif() + find_package(ICU REQUIRED COMPONENTS data i18n io uc) else() message(STATUS "-=[CMake Settings]=-") diff --git a/src/config.sh b/src/config.sh index 7032fdf..f7009aa 100755 --- a/src/config.sh +++ b/src/config.sh @@ -8,6 +8,8 @@ PROJECT_DESC="" PROJECT_URL="" PROJECT_MACOS_BUNDLE_ID="com.fifthgrid.${PROJECT_NAME}" +# IMPORTANT: File must be placed in assets/ folder (assets/icons.icns) +# PROJECT_MACOS_ICNS_NAME="icons.ins" PROJECT_MACOS_ICNS_NAME="" PROJECT_MAJOR_VERSION=0 diff --git a/src/project.cmake b/src/project.cmake index 7727aab..dee8df5 100644 --- a/src/project.cmake +++ b/src/project.cmake @@ -1,5 +1,13 @@ +# NOTE: For Windows Inno Setup support, create the following '.iss' file in: +# "${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}/${PROJECT_NAME}.iss.in" + add_project_library(lib${PROJECT_NAME} "" "" "${PROJECT_ADDITIONAL_SOURCES}") add_project_executable(${PROJECT_NAME} lib${PROJECT_NAME} lib${PROJECT_NAME}) +if (PROJECT_IS_DARWIN AND EXISTS "${CMAKE_SOURCE_DIR}/${PROJECT_NAME}/Info.plist") + set_target_properties(${PROJECT_NAME} PROPERTIES + MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}/Info.plist + ) +endif() add_project_test_executable(${PROJECT_NAME}_test lib${PROJECT_NAME} lib${PROJECT_NAME})