| 1 | cmake_minimum_required( VERSION 2.8 ) |
|---|
| 2 | project( TOL-Installer ) |
|---|
| 3 | |
|---|
| 4 | set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/NSIS" ${CMAKE_MODULE_PATH}) |
|---|
| 5 | |
|---|
| 6 | if( NOT TOL_RUNTIME_DIR ) |
|---|
| 7 | message( FATAL_ERROR "You must specify the variable TOL_RUNTIME_DIR with the path to binary instalation of TOL. TOLTCL and TOLBASE should also be installed on that location." ) |
|---|
| 8 | endif( NOT TOL_RUNTIME_DIR ) |
|---|
| 9 | |
|---|
| 10 | if( WIN32 ) |
|---|
| 11 | file( TO_CMAKE_PATH "${TOL_RUNTIME_DIR}/bin/*.dll" dll_pattern ) |
|---|
| 12 | file( GLOB RT_DLL ${dll_pattern} ) |
|---|
| 13 | install( FILES ${RT_DLL} DESTINATION "bin" ) |
|---|
| 14 | file( TO_CMAKE_PATH "${TOL_RUNTIME_DIR}/bin/*.exe" exe_pattern ) |
|---|
| 15 | file( GLOB RT_EXE ${exe_pattern} ) |
|---|
| 16 | install( FILES ${RT_EXE} DESTINATION "bin" ) |
|---|
| 17 | file( TO_CMAKE_PATH "${TOL_RUNTIME_DIR}/lib" lib_dir ) |
|---|
| 18 | install( DIRECTORY ${lib_dir} DESTINATION "." PATTERN "*.a" EXCLUDE ) |
|---|
| 19 | file( TO_CMAKE_PATH "${TOL_RUNTIME_DIR}/bin/stdlib" stdlib_dir ) |
|---|
| 20 | install( DIRECTORY ${stdlib_dir} DESTINATION "bin" ) |
|---|
| 21 | file( TO_CMAKE_PATH "${CMAKE_SOURCE_DIR}/tolbase-gnu.ico" ico_tolbase ) |
|---|
| 22 | install( FILES ${ico_tolbase} DESTINATION "bin" ) |
|---|
| 23 | endif( WIN32 ) |
|---|
| 24 | |
|---|
| 25 | configure_file( ${CMAKE_SOURCE_DIR}/CPackOptions.cmake.in ${PROJECT_BINARY_DIR}/CPackOptions.cmake) |
|---|
| 26 | |
|---|
| 27 | # http://stackoverflow.com/questions/21144655/customizing-nsis-installer-using-cpack |
|---|
| 28 | # ... |
|---|
| 29 | |
|---|
| 30 | set(CPACK_PACKAGE_NAME "TOL") |
|---|
| 31 | set(CPACK_PACKAGE_VENDOR "www.tol-project.org") |
|---|
| 32 | set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Time Oriented Language") |
|---|
| 33 | set(CPACK_PACKAGE_VERSION "3.2.0") |
|---|
| 34 | set(CPACK_PACKAGE_VERSION_MAJOR "3") |
|---|
| 35 | set(CPACK_PACKAGE_VERSION_MINOR "2") |
|---|
| 36 | set(CPACK_PACKAGE_VERSION_PATCH "0") |
|---|
| 37 | set(CPACK_PACKAGE_INSTALL_DIRECTORY "tolbase") |
|---|
| 38 | set(CPACK_PROPERTIES_FILE "${PROJECT_BINARY_DIR}/CPackOptions.cmake") |
|---|
| 39 | set(CPACK_PACKAGE_ICON "${CMAKE_SOURCE_DIR}/splash-gnu.gif") |
|---|
| 40 | string(REPLACE "/" "\\\\" CPACK_PACKAGE_ICON ${CPACK_PACKAGE_ICON}) |
|---|
| 41 | set( CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/tol/COPYING" ) |
|---|
| 42 | string(REPLACE "/" "\\\\" CPACK_RESOURCE_FILE_LICENSE ${CPACK_RESOURCE_FILE_LICENSE}) |
|---|
| 43 | set(CPACK_NSIS_MUI_ICON "${CMAKE_SOURCE_DIR}/tolbase-gnu.ico" ) |
|---|
| 44 | string(REPLACE "/" "\\\\" CPACK_NSIS_MUI_ICON ${CPACK_NSIS_MUI_ICON}) |
|---|
| 45 | set(CPACK_NSIS_MUI_UNIICON "${CMAKE_SOURCE_DIR}/tolbase-gnu.ico" ) |
|---|
| 46 | string(REPLACE "/" "\\\\" CPACK_NSIS_MUI_UNIICON ${CPACK_NSIS_MUI_UNIICON}) |
|---|
| 47 | |
|---|
| 48 | # http://www.mantidproject.org/NSIS_CPACK_Customisations |
|---|
| 49 | # http://nsis.sourceforge.net/Environmental_Variables:_append,_prepend,_and_remove_entries |
|---|
| 50 | |
|---|
| 51 | if( WIN32 ) |
|---|
| 52 | set (CPACK_NSIS_EXTRA_INSTALL_COMMANDS |
|---|
| 53 | " |
|---|
| 54 | Push \\\"TOLGNU_ROOT\\\" |
|---|
| 55 | Push \\\"A\\\" |
|---|
| 56 | Push \\\"HKCU\\\" |
|---|
| 57 | Push \\\"$INSTDIR\\\" |
|---|
| 58 | Call EnvVarUpdate |
|---|
| 59 | Pop \\\$0" ) |
|---|
| 60 | set (CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS "Push \\\"TOLGNU_ROOT\\\" |
|---|
| 61 | Push \\\"R\\\" |
|---|
| 62 | Push \\\"HKCU\\\" |
|---|
| 63 | Push \\\"$INSTDIR\\\" |
|---|
| 64 | Call un.EnvVarUpdate |
|---|
| 65 | Pop \\\$0" ) |
|---|
| 66 | set (ICONPATH "$INSTDIR/bin/tolbase-gnu.ico") |
|---|
| 67 | string(REPLACE "/" "\\\\" ICONPATH ${ICONPATH}) |
|---|
| 68 | set(CPACK_NSIS_CREATE_ICONS_EXTRA "CreateShortCut '$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\\tolbase.lnk' '$INSTDIR\\\\bin\\\\tolbase.exe' '' '${ICONPATH}'" ) |
|---|
| 69 | set(CPACK_NSIS_DELETE_ICONS_EXTRA "Delete '$SMPROGRAMS\\\\$MUI_TEMP\\\\tolbase.lnk'" ) |
|---|
| 70 | |
|---|
| 71 | endif( WIN32 ) |
|---|
| 72 | include(CPack) |
|---|