File: CMakeLists.txt

package info (click to toggle)
cmake 4.2.3-2
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 152,456 kB
  • sloc: ansic: 403,896; cpp: 303,920; sh: 4,105; python: 3,583; yacc: 3,106; lex: 1,279; f90: 538; asm: 471; lisp: 375; cs: 270; java: 266; fortran: 239; objc: 215; perl: 213; xml: 198; makefile: 111; javascript: 83; pascal: 63; tcl: 55; php: 25; ruby: 22
file content (55 lines) | stat: -rw-r--r-- 2,642 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
cmake_minimum_required(VERSION 3.13)

project(CPackInnoSetupGenerator VERSION 42.0 HOMEPAGE_URL "https://www.example.com")

add_executable(hello main.c)
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/empty)

install(TARGETS hello DESTINATION / COMPONENT application)
install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/empty DESTINATION / COMPONENT extras)
install(FILES my_bitmap.bmp DESTINATION awesome COMPONENT extras)
install(FILES my_file.txt DESTINATION / COMPONENT hidden_component)
install(FILES my_file.txt DESTINATION / COMPONENT hidden_component2)

set(CPACK_GENERATOR "INNOSETUP")

set(CPACK_PACKAGE_NAME "Hello, World!") # Test constant escape (like {cm:...}, see code documentation)
set(CPACK_PACKAGE_VENDOR "Sheldon Cooper")
set(CPACK_PACKAGE_INSTALL_DIRECTORY "hello_world")
set(CPACK_PACKAGE_INSTALL_REGISTRY_KEY "hello_world")
set(CPACK_PACKAGE_FILE_NAME "hello_world_setup")
set(CPACK_SYSTEM_NAME "win32")
set(CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/my_bitmap.bmp")
set(CPACK_VERBATIM_VARIABLES ON)
set(CPACK_PACKAGE_EXECUTABLES "hello" "Hello, World!")
set(CPACK_CREATE_DESKTOP_LINKS hello)

set(CPACK_INNOSETUP_INSTALL_ROOT "{autopf}\\Sheldon Cooper")
set(CPACK_INNOSETUP_PROGRAM_MENU_FOLDER ".")
set(CPACK_INNOSETUP_IGNORE_LICENSE_PAGE ON)
set(CPACK_INNOSETUP_IGNORE_README_PAGE OFF) # Test if only readme page is shown
set(CPACK_INNOSETUP_SETUP_AppComments ON) # Test if CPACK_INNOSETUP_USE_CMAKE_BOOL_FORMAT works
set(CPACK_INNOSETUP_CUSTOM_INSTALL_INSTRUCTIONS "extras/empty"
    "Name: \"{userdocs}\\empty\"\; Check: ReturnTrue\; Components: accessories\\extras")
set(CPACK_INNOSETUP_MENU_LINKS "https://www.example.com" "Web"
    "my_file.txt" "Text")
set(CPACK_INNOSETUP_RUN_EXECUTABLES hello)
set(CPACK_INNOSETUP_CREATE_UNINSTALL_LINK ON)
# Test if this macro is available in the code file below containing the check function
set(CPACK_INNOSETUP_DEFINE_PascalMacro "end;")
set(CPACK_INNOSETUP_CODE_FILES "${CMAKE_CURRENT_SOURCE_DIR}/Code.pas")
set(CPACK_INNOSETUP_EXECUTABLE "ISCC.exe")

include(CPackComponent)

cpack_add_install_type(basic DISPLAY_NAME "Basic installation")
cpack_add_install_type(full DISPLAY_NAME "\"Large\" installation") # Test double quote syntax
cpack_add_component_group(accessories DISPLAY_NAME "Accessories")

cpack_add_component(application DISPLAY_NAME "Application" INSTALL_TYPES basic full REQUIRED)
cpack_add_component(extras DISPLAY_NAME "Additional components" INSTALL_TYPES full GROUP accessories)
cpack_add_component(hidden_component HIDDEN)
cpack_add_component(hidden_component2 HIDDEN DISABLED)
set(CPACK_INNOSETUP_extras_INSTALL_DIRECTORY "{userdocs}")

include(CPack)