Skip to content

icu: Include file not found #1619

Open
@hashitaku

Description

environment

  • Linux

    $ sudo docker container run -it debian:bookworm
    $ apt update && apt install meson
    $ g++ --version
    g++ (Debian 12.2.0-14) 12.2.0
    Copyright (C) 2022 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions.  There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    $ meson --version
    1.0.1
  • Windows

    > scoop install meson
    > meson --version
    1.5.1
    > cl
    Microsoft(R) C/C++ Optimizing Compiler Version 19.41.34120 for x64
    Copyright (C) Microsoft Corporation.  All rights reserved.

structure

.
|-- foo.cpp
|-- meson.build
`-- subprojects
    `-- icu.wrap
  • meson.build
project(
    'foo',
    'cpp',
    version: '0.1',
    default_options: ['warning_level=3', 'cpp_std=c++14'],
)

icu = subproject('icu')
icuuc = icu.get_variable('icuuc_dep')
icuio = icu.get_variable('icuio_dep')
icui18n = icu.get_variable('icui18n_dep')


exe = executable('foo', 'foo.cpp', dependencies: [icuuc, icuio, icui18n])
  • foo.cpp
#include <iostream>

#include <unicode/ustream.h> // icuio header

int main() {
    auto s = icu::UnicodeString::fromUTF8(u8"あいうえお");

    std::cout << s << std::endl;
}

actual behavior

$ meson setup build
$ meson compile -C build
INFO: autodetecting backend as ninja
INFO: calculating backend command to run: /usr/bin/ninja -C /root/foo/build
ninja: Entering directory `/root/foo/build'
[1/2] Compiling C++ object foo.p/foo.cpp.o
FAILED: foo.p/foo.cpp.o
c++ -Ifoo.p -I. -I.. -Isubprojects/icu/source/common -I../subprojects/icu/source/common -Isubprojects/icu/source/i18n -I../subprojects/icu/source/i18n -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -Wpedantic -std=c++14 -O0 -g -MD -MQ foo.p/foo.cpp.o -MF foo.p/foo.cpp.o.d -o foo.p/foo.cpp.o -c ../foo.cpp
../foo.cpp:3:10: fatal error: unicode/ustream.h: No such file or directory
    3 | #include <unicode/ustream.h> // icuio header
      |          ^~~~~~~~~~~~~~~~~~~
compilation terminated.
ninja: build stopped: subcommand failed.

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions