summaryrefslogtreecommitdiffstats
path: root/packaging/win32/macros/ifexist.nsh
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--packaging/win32/macros/ifexist.nsh36
1 files changed, 36 insertions, 0 deletions
diff --git a/packaging/win32/macros/ifexist.nsh b/packaging/win32/macros/ifexist.nsh
new file mode 100644
index 0000000..5a0ea62
--- /dev/null
+++ b/packaging/win32/macros/ifexist.nsh
@@ -0,0 +1,36 @@
+; See http://nsis.sourceforge.net/Check_if_a_file_exists_at_compile_time for documentation
+!macro !ifexist _FILE_NAME
+ !tempfile _TEMPFILE
+ !system `if exist "${_FILE_NAME}" echo !define _FILE_EXISTS > "${_TEMPFILE}"`
+ !include `${_TEMPFILE}`
+ !delfile `${_TEMPFILE}`
+ !undef _TEMPFILE
+ !ifdef _FILE_EXISTS
+ !undef _FILE_EXISTS
+!macroend
+!define !ifexist "!insertmacro !ifexist"
+!macro !ifnexist _FILE_NAME
+ !tempfile _TEMPFILE
+ !system `if not exist "${_FILE_NAME}" echo !define _FILE_EXISTS > "${_TEMPFILE}"`
+ !include `${_TEMPFILE}`
+ !delfile `${_TEMPFILE}`
+ !undef _TEMPFILE
+ !ifdef _FILE_EXISTS
+ !undef _FILE_EXISTS
+!macroend
+!define !ifnexist "!insertmacro !ifnexist"
+
+!macro !defineifexist _FILE_NAME _VAR_NAME _VAR_VALUE
+ !tempfile _TEMPFILE
+ !ifdef NSIS_WIN32_MAKENSIS
+ ; Windows - cmd.exe
+ !system 'if exist "${_FILE_NAME}" echo !define ${_VAR_NAME} ${_VAR_VALUE} > "${_TEMPFILE}"'
+ !else
+ ; Posix - sh
+ !system 'if [ -e "${_FILE_NAME}" ]; then echo "!define ${_VAR_NAME} ${_VAR_VALUE}" > "${_TEMPFILE}"; fi'
+ !endif
+ !include '${_TEMPFILE}'
+ !delfile '${_TEMPFILE}'
+ !undef _TEMPFILE
+!macroend
+!define !defineifexist "!insertmacro !defineifexist"