' + text + '
');
- });
- }
- })
- .catch(function (rejected) {
- $("#3rdpartylicenses").html('' + $.i18n("about_3rd_party_licenses_error") + '');
- });
+ $.ajax({
+ url:'3RD_PARTY_LICENSES',
+ dataType: "text",
+ success: function()
+ {
+ $("#3rdpartylicenses").html('' + $.i18n("about_3rd_party_licenses_error") + '');
+ },
+ error: function(data)
+ {
+ $("#3rdpartylicenses").html('' + data + '
');
+ }
+ });
removeOverlay();
diff --git a/cmake/Dependencies.cmake b/cmake/Dependencies.cmake
index 378c21da..4cbbc453 100644
--- a/cmake/Dependencies.cmake
+++ b/cmake/Dependencies.cmake
@@ -1,4 +1,94 @@
-macro(DeployUnix TARGET)
+macro(DeployMacOS TARGET)
+ if (EXISTS ${TARGET_FILE})
+ message(STATUS "Collecting Dependencies for target file: ${TARGET_FILE}")
+
+ get_target_property(QMAKE_EXECUTABLE Qt5::qmake IMPORTED_LOCATION)
+ execute_process(
+ COMMAND ${QMAKE_EXECUTABLE} -query QT_INSTALL_PLUGINS
+ OUTPUT_VARIABLE QT_PLUGIN_DIR
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ )
+
+ install(CODE "set(TARGET_FILE \"${TARGET_FILE}\") \n set(TARGET_BUNDLE_NAME \"${TARGET}.app\") \n set(PLUGIN_DIR \"${QT_PLUGIN_DIR}\")" COMPONENT "Hyperion")
+ install(CODE [[
+ file(GET_RUNTIME_DEPENDENCIES
+ EXECUTABLES ${TARGET_FILE}
+ RESOLVED_DEPENDENCIES_VAR resolved_deps
+ UNRESOLVED_DEPENDENCIES_VAR unresolved_deps
+ PRE_INCLUDE_REGEXES ".dylib"
+ PRE_EXCLUDE_REGEXES ".*"
+ )
+
+ foreach(dependency ${resolved_deps})
+ file(INSTALL
+ FILES "${dependency}"
+ DESTINATION "${CMAKE_INSTALL_PREFIX}/${TARGET_BUNDLE_NAME}/Contents/Frameworks"
+ TYPE SHARED_LIBRARY
+ )
+ endforeach()
+
+ list(LENGTH unresolved_deps unresolved_length)
+ if("${unresolved_length}" GREATER 0)
+ message(WARNING "The following unresolved dependencies were discovered: ${unresolved_deps}")
+ endif()
+
+ foreach(PLUGIN "platforms" "sqldrivers" "imageformats")
+ if(EXISTS ${PLUGIN_DIR}/${PLUGIN})
+ file(GLOB files "${PLUGIN_DIR}/${PLUGIN}/*")
+ foreach(file ${files})
+ get_filename_component(plugin ${file} NAME)
+ list(APPEND QT_PLUGINS "${CMAKE_INSTALL_PREFIX}/${TARGET_BUNDLE_NAME}/Contents/plugins/${PLUGIN}/${plugin}")
+ file(INSTALL
+ FILES ${file}
+ DESTINATION "${CMAKE_INSTALL_PREFIX}/${TARGET_BUNDLE_NAME}/Contents/plugins/${PLUGIN}"
+ TYPE SHARED_LIBRARY
+ )
+ endforeach()
+ endif()
+ endforeach()
+
+ include(BundleUtilities)
+ fixup_bundle("${CMAKE_INSTALL_PREFIX}/${TARGET_BUNDLE_NAME}" "${QT_PLUGINS}" "" IGNORE_ITEM "python;python3;Python;Python3;.Python;.Python3")
+
+ # Detect the Python version and modules directory
+ find_package(Python3 3.5 REQUIRED)
+ execute_process(
+ COMMAND ${Python3_EXECUTABLE} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(standard_lib=True))"
+ OUTPUT_VARIABLE PYTHON_MODULES_DIR
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ )
+
+ # Copy Python modules to '/../Frameworks/Python.framework/Versions/Current/lib/PythonMAJOR.MINOR' and ignore the unnecessary stuff listed below
+ if (PYTHON_MODULES_DIR)
+ set(PYTHON_VERSION_MAJOR_MINOR "${Python3_VERSION_MAJOR}.${Python3_VERSION_MINOR}")
+ file(
+ COPY ${PYTHON_MODULES_DIR}/
+ DESTINATION "${CMAKE_INSTALL_PREFIX}/${TARGET_BUNDLE_NAME}/Contents/Frameworks/Python.framework/Versions/Current/lib/python${PYTHON_VERSION_MAJOR_MINOR}"
+ PATTERN "*.pyc" EXCLUDE # compiled bytecodes
+ PATTERN "__pycache__" EXCLUDE # any cache
+ PATTERN "config-${PYTHON_VERSION_MAJOR_MINOR}*" EXCLUDE # static libs
+ PATTERN "lib2to3" EXCLUDE # automated Python 2 to 3 code translation
+ PATTERN "tkinter" EXCLUDE # Tk interface
+ PATTERN "turtledemo" EXCLUDE # Tk demo folder
+ PATTERN "turtle.py" EXCLUDE # Tk demo file
+ PATTERN "test" EXCLUDE # unittest module
+ PATTERN "sitecustomize.py" EXCLUDE # site-specific configs
+ )
+ endif(PYTHON_MODULES_DIR)
+ ]] COMPONENT "Hyperion")
+
+ else()
+ add_custom_command(
+ TARGET ${TARGET} POST_BUILD
+ COMMAND "${CMAKE_COMMAND}" "-DTARGET_FILE=$k3jei`^=!FRxqNJ27XaSqSh7?p{-ncDhGy&Kp(4d*2lH+TG@R)_jr?B!Dg
znOy9Ny+zmk#?qnsv^ucb3E#gx7DnmXbDkgI4V8dT4bzB3XrvtvhB!v`DlO>oOmnr>
z^a>3WaM!f9*Zd0zZOE8q3rkenC`&__pN5u`asqS=aVk&d`D0?dMr)SH%|dF15675A
zxrH1sy0j1M{Y@xf_chkD>K?>Z<>j}mp9AsJX2YL{l7&U%6V03viOC&>dQIc!_3oSA
zDc3oueNH1$%mtKh_0?Phku#^&JE!dgxof_uWg=@hA#qQ?KW+``v|DB8kL($I+}jwc
zoP6YW|B~Eo|Il5Y;BL(6 +52g8KZ_SL3sFaoC~4WG3 &a!0qlw4Hg$MQ)DGO-(8M;6|cRFw3im4N7M&
zBkjRi=+(Vp#w&&Pm2LP1<<7uK&1!Izt^NQ`$yYg7(pq5UBO7=m)`>V&z{6Pfp>);m
zE9tjqHd?feecclz`_TIo!xV$azNEi0ya`*FZ&Qhhv(G_TeZX-+kl1E;?~}c~Q=aOu
zD^ynSl`wM_wo7e?1Hz&RY1%;xj{T}_rDcX#c&gpM4OJnR$^^^kEX&JB?Y)0cp51Pg
zopZ@gmty*2#$rZY?HX#$Rt~91?ak*!8jjrzyY+%1S@-d<1#t9d==Yhh*57>gr6B;n
zv2l!+&f%wPkm@HuA?YlqwC-w^2GM+|%^u