aboutsummaryrefslogtreecommitdiff
path: root/ports/libidn2/portfile.cmake
blob: f9ffcae787c32e2272280e28b10557706b87356b (plain)
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
set(IDN2_VERSION 2.3.0)
set(IDN2_FILENAME libidn2-${IDN2_VERSION}.tar.gz)

vcpkg_download_distfile(ARCHIVE
    URLS "https://ftp.gnu.org/gnu/libidn/${IDN2_FILENAME}" "https://www.mirrorservice.org/sites/ftp.gnu.org/gnu/libidn/${IDN2_FILENAME}"
    FILENAME "${IDN2_FILENAME}"
    SHA512 a2bf6d2249948bce14fbbc802f8af1c9b427fc9bf64203a2f3d7239d8e6061d0a8e7970a23e8e5889110a654a321e0504c7a6d049bb501e7f6a23d42b50b6187
)

vcpkg_extract_source_archive_ex(
    OUT_SOURCE_PATH SOURCE_PATH
    ARCHIVE "${ARCHIVE}"
    REF ${IDN2_VERSION}
)

if (VCPKG_TARGET_IS_WINDOWS)
    file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}")
    file(COPY "${CMAKE_CURRENT_LIST_DIR}/string.h" DESTINATION "${SOURCE_PATH}/gl")
    
    set(HAVE_ALLOCA_H 0)
    
    configure_file("${CMAKE_CURRENT_LIST_DIR}/config.h" "${SOURCE_PATH}")
    
    function(simple_copy_template_header FILE_PATH BASE_NAME)
        if(NOT EXISTS "${FILE_PATH}/${BASE_NAME}.h" AND EXISTS "${FILE_PATH}/${BASE_NAME}.in.h")
            configure_file("${FILE_PATH}/${BASE_NAME}.in.h" "${FILE_PATH}/${BASE_NAME}.h")
        endif()
    endfunction()
    
    # There seems to be no difference between source and destination files after 'configure'
    # apart from auto-generated notification at the top. So why not just do a simple copy.
    simple_copy_template_header("${SOURCE_PATH}/unistring" uniconv)
    simple_copy_template_header("${SOURCE_PATH}/unistring" unictype)
    simple_copy_template_header("${SOURCE_PATH}/unistring" uninorm)
    simple_copy_template_header("${SOURCE_PATH}/unistring" unistr)
    simple_copy_template_header("${SOURCE_PATH}/unistring" unitypes)
    simple_copy_template_header("${SOURCE_PATH}/unistring" alloca)
    
    vcpkg_cmake_configure(
        SOURCE_PATH "${SOURCE_PATH}"
        OPTIONS
            "-DPACKAGE_VERSION=${IDN2_VERSION}"
    )
    
    vcpkg_cmake_install()
    
    vcpkg_copy_pdbs()
    
    file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")

else()
    set(ENV{GTKDOCIZE} true)
    vcpkg_configure_make(
        SOURCE_PATH "${SOURCE_PATH}"
        AUTOCONFIG
        COPY_SOURCE
        OPTIONS
            "--with-libiconv-prefix=${CURRENT_INSTALLED_DIR}"
            --disable-gtk-doc
            --disable-doc
    )
    
    vcpkg_install_make()
    
    file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share")
endif()

vcpkg_fixup_pkgconfig()

# License and man
file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/libidn2" RENAME copyright)
file(INSTALL "${SOURCE_PATH}/doc/libidn2.pdf" DESTINATION "${CURRENT_PACKAGES_DIR}/share/libidn2")