Rust-Libui rs: libui-rs — libui bindings .

Improved User Interface

A cross-platform UI toolkit for Rust based on libui

travis-ci build status libui-rs appveyor build status badge actively developed badge

iui: iui crates.io version badge docs.rs for iui ui-sys: ui-sys crates.io version badge docs.rs for ui-sys

iui is a simple (about 4 kLOC of Rust), small (about 800kb, including libui), easy to distribute (one shared library) GUI library, providing a Rusty user interface library that binds to native APIs via the libui and the ui-sys bindings crate.

iui wraps native retained mode GUI libraries, like Win32API on Windows, Cocoa on Mac OS X, and GTK+ on Linux and elsewhere. Thus all iui apps have a native look and feel and start from a highly performant base which is well integrated with the native ecosystem on each platform. Because it implements only the least common subset of these platform APIs, your apps will work on all platforms and won't have significant behavioral inconsistencies, with no additional effort on your part.

Using

Add iui to your project with:

iui = "0.3"

Then, in your code, all you have to do is:

  1. create a UI handle, initializing the UI library and guarding against memory unsafety
  2. make a window, or a few, with title and platform-native decorations, into which your app will be drawn
  3. add all your controls, like buttons and text inputs, laid out with both axial and grid layout options
  4. implement some callbacks for user input, taking full advantage of Rust's concurrency protections
  5. call UI::main, or take control over the event processing with an EventLoop, and voíla! A GUI!

Or, you can track the master branch, which may be broken and whose API often changes, with:

iui = { git = "https://github.com/rust-native-ui/libui-rs.git" }

We have documentation on docs.rs for released versions and on github for master.

Examples

Three example GUI applications running on Linux

Check out the examples/ directory from the latest release for these examples and more.

Organization

This repository contains multiple Rust crates:

  • iui is the safe Rust wrapper, to be used by most users.
  • ui-sys is the raw unsafe bindings to the libui C code. Requires cmake so it can build libui. libui is included as a submodule.

Also be sure to look at our changelog and learn how to contribute.

Building ui-sys

ui-sys includes libui as a sub-module and allows it to be built on-the-fly with the default features fetch and build. With fetch disabled, it will simply build the existing sources without updating them, and with build disabled it will build nothing, assuming either a system or local (in ./lib/) version of libui is available.

Note that most of the time, building libui on the fly is what you want. It does however require a copy of cmake, essential build tools, et cetera.

Acknowledgments

Based on work by @pcwalton.

Comments

  • Throttle UI::run_delay
    Throttle UI::run_delay

    Nov 26, 2019

    When building an UI for an app the has long-running background processes that need to be monitored I noticed that run_delay calls the on_tick callback very aggressively. This change would trigger the callback on every delay_ms milliseconds (as advertised) without consuming a whole CPU core.

    Reply
  • add thread local ids pool
    add thread local ids pool

    Feb 3, 2020

    add bindgen pad field fix the macro export issue add test

    Reply
  • Remove cmake dependency
    Remove cmake dependency

    Apr 5, 2020

    This is an experimental patch that removes the dependency on cmake. It has been fully tested on Windows and Unix, and Darwin.

    Additionally, a CI test for Darwin has been added, although the test currently times out on Travis in src/controls/progressbar.rs - controls::progressbar::ProgressBarValue (line 19). This is an upstream issue (see https://github.com/andlabs/libui/issues/495).

    Platform support:

    • [x] Darwin
    • [x] Unix
    • [x] Windows MSVC
    • [x] Windows GNU

    This has not been tested without the build feature enabled, as I am not familiar with how that should work.

    Reply
  • Define Rust MSRV
    Define Rust MSRV

    Apr 6, 2020

    It would be nice if libui had a Minimum Supported Rust Version.

    When building iui with

    For example, ATOMIC_BOOL_INIT (used in iui/src/ffi_tools.rs) was deprecated in Rust 1.34, and users were asked instead to use `AtomicBool::new() which appeared in Rust 1.32.

    Additionally, mem::uninitialized was deprecated in Rust 1.39 due to its unsoundness, preferring mem::MaybeUninit which was introduced in Rust 1.36.

    I have patches to fix these, but it bumps the MSRV up to 1.36 in order to use MaybeUninit.

    c-question k-dependencies p-high x-help wanted 
    Reply
  • Fix build warnings on Rust 1.37+
    Fix build warnings on Rust 1.37+

    Apr 6, 2020

    This patchset fixes build warnings that were encountered when using Rust 1.42.0. These most likely exist on any Rust version since 1.37.

    Note that this bumps the MSRV up to at least 1.36, since that's when mem::MaybeUninit was introduced.

    Reply
  • Disable/Remove window buttons
    Disable/Remove window buttons

    Jun 1, 2020

    Is it possible to disable or remove window buttons like close, minimize, maximize?

    Reply
  • Is there a way to create a scrollable area?
    Is there a way to create a scrollable area?

    Mar 7, 2019

    I'm currently writing a program that will need to render long lists of stuff. Currently, the items extend off the screen. Is it possible to make a scrollable area?

    c-enhancement k-dependencies t-wontfix 
    Reply
  • error: failed to run custom build command for `ui-sys v0.1.3`
    error: failed to run custom build command for `ui-sys v0.1.3`

    Sep 25, 2018

    I'm trying to execute the example in the crate.io but got this error, I read #14, #249 and #282 but did not get what shall I do exactly.

    I'm at Mac.

    The full error is:

    Hasans-Air:hello-iui hasan$ cargo build Compiling proc-macro2 v0.4.19
    Compiling unicode-xid v0.1.0 Compiling cc v1.0.25 Compiling failure_derive v0.1.2 Compiling libc v0.2.43 Compiling cfg-if v0.1.5 Compiling rustc-demangle v0.1.9 Compiling bitflags v1.0.4 Compiling backtrace v0.3.9 Compiling cmake v0.1.34 Compiling ui-sys v0.1.3 Compiling quote v0.6.8 Compiling syn v0.14.9 error: failed to run custom build command for ui-sys v0.1.3 process didn't exit successfully: /Users/hasan/hello-iui/target/debug/build/ui-sys-0fdbd7b46e2e8b27/build-script-build (exit code: 101) --- stdout git version 2.17.1 running: "cmake" "/Users/hasan/.cargo/registry/src/github.com-1ecc6299db9ec823/ui-sys-0.1.3/libui" "-DCMAKE_INSTALL_PREFIX=/Users/hasan/hello-iui/target/debug/build/ui-sys-95463f95efa66ad5/out" "-DCMAKE_C_FLAGS= -ffunction-sections -fdata-sections -fPIC -m64" "-DCMAKE_C_COMPILER=/usr/bin/cc" "-DCMAKE_CXX_FLAGS= -ffunction-sections -fdata-sections -fPIC -m64" "-DCMAKE_CXX_COMPILER=/usr/bin/c++" "-DCMAKE_BUILD_TYPE=release" -- The C compiler identification is AppleClang 10.0.0.10001044 -- The CXX compiler identification is AppleClang 10.0.0.10001044 -- Check for working C compiler: /usr/bin/cc -- Check for working C compiler: /usr/bin/cc -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Detecting C compile features -- Detecting C compile features - done -- Check for working CXX compiler: /usr/bin/c++ -- Check for working CXX compiler: /usr/bin/c++ -- broken -- Configuring incomplete, errors occurred! See also "/Users/hasan/hello-iui/target/debug/build/ui-sys-95463f95efa66ad5/out/build/CMakeFiles/CMakeOutput.log". See also "/Users/hasan/hello-iui/target/debug/build/ui-sys-95463f95efa66ad5/out/build/CMakeFiles/CMakeError.log".

    --- stderr fatal: not a git repository (or any of the parent directories): .git CMake Error at /usr/local/Cellar/cmake/3.11.4/share/cmake/Modules/CMakeTestCXXCompiler.cmake:45 (message): The C++ compiler

    "/usr/bin/c++"
    

    is not able to compile a simple test program.

    It fails with the following output:

    Change Dir: /Users/hasan/hello-iui/target/debug/build/ui-sys-95463f95efa66ad5/out/build/CMakeFiles/CMakeTmp
    
    Run Build Command:"/usr/bin/make" "cmTC_31f52/fast"
    /Library/Developer/CommandLineTools/usr/bin/make -f CMakeFiles/cmTC_31f52.dir/build.make CMakeFiles/cmTC_31f52.dir/build
    Building CXX object CMakeFiles/cmTC_31f52.dir/testCXXCompiler.cxx.o
    /usr/bin/c++    -ffunction-sections -fdata-sections -fPIC -m64  -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk -mmacosx-version-min=10.8   -o CMakeFiles/cmTC_31f52.dir/testCXXCompiler.cxx.o -c /Users/hasan/hello-iui/target/debug/build/ui-sys-95463f95efa66ad5/out/build/CMakeFiles/CMakeTmp/testCXXCompiler.cxx
    warning: include path for stdlibc++ headers not found; pass '-std=libc++' on the command line to use the libc++ standard library instead [-Wstdlibcxx-not-found]
    1 warning generated.
    Linking CXX executable cmTC_31f52
    /usr/local/Cellar/cmake/3.11.4/bin/cmake -E cmake_link_script CMakeFiles/cmTC_31f52.dir/link.txt --verbose=1
    /usr/bin/c++   -ffunction-sections -fdata-sections -fPIC -m64  -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk -mmacosx-version-min=10.8 -Wl,-search_paths_first -Wl,-headerpad_max_install_names   CMakeFiles/cmTC_31f52.dir/testCXXCompiler.cxx.o  -o cmTC_31f52 
    clang: warning: libstdc++ is deprecated; move to libc++ with a minimum deployment target of OS X 10.9 [-Wdeprecated]
    ld: library not found for -lstdc++
    clang: error: linker command failed with exit code 1 (use -v to see invocation)
    make[1]: *** [cmTC_31f52] Error 1
    make: *** [cmTC_31f52/fast] Error 2
    

    CMake will not be able to correctly generate this project. Call Stack (most recent call first): CMakeLists.txt:35 (project)

    thread 'main' panicked at ' command did not execute successfully, got: exit code: 1

    build script failed, must exit now', /Users/hasan/.cargo/registry/src/github.com-1ecc6299db9ec823/cmake-0.1.34/src/lib.rs:776:5 note: Run with RUST_BACKTRACE=1 for a backtrace.

    warning: build failed, waiting for other jobs to finish... error: build failed

    c-bug k-buildprocess p-high 
    Reply
  • compiling example failed with error not LNK1181: ui.lib not found on Windows 10
    compiling example failed with error not LNK1181: ui.lib not found on Windows 10

    May 25, 2018

    After updating to the master branch, I came across an error of LNK1181:

    $ cargo run
       Compiling unicode-xid v0.0.4
       Compiling winapi v0.3.4
       Compiling quote v0.3.15
       Compiling cc v1.0.15
       Compiling rustc-demangle v0.1.8
       Compiling cfg-if v0.1.3
       Compiling libc v0.2.41
       Compiling bitflags v1.0.3
       Compiling synom v0.11.3
       Compiling syn v0.11.11
       Compiling cmake v0.1.31
       Compiling ui-sys v0.1.2 (https://github.com/LeoTindall/libui-rs#5a68a471)
       Compiling backtrace v0.3.8
       Compiling synstructure v0.6.1
       Compiling failure_derive v0.1.1
       Compiling failure v0.1.1
       Compiling iui v0.2.0 (https://github.com/LeoTindall/libui-rs#5a68a471)
       Compiling iui-example v0.1.0 (file:///C:/Users/34937/Desktop/learning-rust/iui-example)
    error: linking with `C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.12.25827\bin\HostX64\x64\link.exe` failed: exit code: 1181
      |
      = note: "C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Community\\VC\\Tools\\MSVC\\14.12.25827\\bin\\HostX64\\x64\\link.exe" "/NOLOGO" "/NXCOMPAT" "/LIBPATH:C:\\Users\\34937\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib" "C:\\Users\\34937\\Desktop\\learning-rust\\iui-example\\target\\debug\\deps\\iui_example-7e5f53b6c9b28dbe.138pesuvab4dy035.rcgu.o" "C:\\Users\\34937\\Desktop\\learning-rust\\iui-example\\target\\debug\\deps\\iui_example-7e5f53b6c9b28dbe.16u6js6g0l3k1ic6.rcgu.o" "C:\\Users\\34937\\Desktop\\learning-rust\\iui-example\\target\\debug\\deps\\iui_example-7e5f53b6c9b28dbe.1ckp3bwk0jmrbky4.rcgu.o" "C:\\Users\\34937\\Desktop\\learning-rust\\iui-example\\target\\debug\\deps\\iui_example-7e5f53b6c9b28dbe.1im38lueib99jsk0.rcgu.o" "C:\\Users\\34937\\Desktop\\learning-rust\\iui-example\\target\\debug\\deps\\iui_example-7e5f53b6c9b28dbe.1mvmz58owquyropc.rcgu.o" "C:\\Users\\34937\\Desktop\\learning-rust\\iui-example\\target\\debug\\deps\\iui_example-7e5f53b6c9b28dbe.1y16o1qfye96o7m0.rcgu.o" "C:\\Users\\34937\\Desktop\\learning-rust\\iui-example\\target\\debug\\deps\\iui_example-7e5f53b6c9b28dbe.1zeawhkbeobww1zn.rcgu.o" "C:\\Users\\34937\\Desktop\\learning-rust\\iui-example\\target\\debug\\deps\\iui_example-7e5f53b6c9b28dbe.23tqyymcb18u96mb.rcgu.o" "C:\\Users\\34937\\Desktop\\learning-rust\\iui-example\\target\\debug\\deps\\iui_example-7e5f53b6c9b28dbe.287fjwldxriihryb.rcgu.o" "C:\\Users\\34937\\Desktop\\learning-rust\\iui-example\\target\\debug\\deps\\iui_example-7e5f53b6c9b28dbe.2jqywn86b2gsqohu.rcgu.o" "C:\\Users\\34937\\Desktop\\learning-rust\\iui-example\\target\\debug\\deps\\iui_example-7e5f53b6c9b28dbe.2lyh15q6cjwzy18c.rcgu.o" "C:\\Users\\34937\\Desktop\\learning-rust\\iui-example\\target\\debug\\deps\\iui_example-7e5f53b6c9b28dbe.2yyg5bd89e3irycb.rcgu.o" "C:\\Users\\34937\\Desktop\\learning-rust\\iui-example\\target\\debug\\deps\\iui_example-7e5f53b6c9b28dbe.3171x0bwu82dptu7.rcgu.o" "C:\\Users\\34937\\Desktop\\learning-rust\\iui-example\\target\\debug\\deps\\iui_example-7e5f53b6c9b28dbe.3ayaeypdcro9d6yk.rcgu.o" "C:\\Users\\34937\\Desktop\\learning-rust\\iui-example\\target\\debug\\deps\\iui_example-7e5f53b6c9b28dbe.3cx7oljifvb206q7.rcgu.o" "C:\\Users\\34937\\Desktop\\learning-rust\\iui-example\\target\\debug\\deps\\iui_example-7e5f53b6c9b28dbe.3p4871ksc97vnnrn.rcgu.o" "C:\\Users\\34937\\Desktop\\learning-rust\\iui-example\\target\\debug\\deps\\iui_example-7e5f53b6c9b28dbe.3rngp6bm2u2q5z0y.rcgu.o" "C:\\Users\\34937\\Desktop\\learning-rust\\iui-example\\target\\debug\\deps\\iui_example-7e5f53b6c9b28dbe.3vv0q9obd6w3595h.rcgu.o" "C:\\Users\\34937\\Desktop\\learning-rust\\iui-example\\target\\debug\\deps\\iui_example-7e5f53b6c9b28dbe.3woqeoqf0goarhik.rcgu.o" "C:\\Users\\34937\\Desktop\\learning-rust\\iui-example\\target\\debug\\deps\\iui_example-7e5f53b6c9b28dbe.436dotimmrgzkwfa.rcgu.o" "C:\\Users\\34937\\Desktop\\learning-rust\\iui-example\\target\\debug\\deps\\iui_example-7e5f53b6c9b28dbe.45nf4z58qqykpcpi.rcgu.o" "C:\\Users\\34937\\Desktop\\learning-rust\\iui-example\\target\\debug\\deps\\iui_example-7e5f53b6c9b28dbe.45pc7c65foh9i35f.rcgu.o" "C:\\Users\\34937\\Desktop\\learning-rust\\iui-example\\target\\debug\\deps\\iui_example-7e5f53b6c9b28dbe.48721dc4k5qxei0u.rcgu.o" "C:\\Users\\34937\\Desktop\\learning-rust\\iui-example\\target\\debug\\deps\\iui_example-7e5f53b6c9b28dbe.4954tfkopzmp0j3d.rcgu.o" "C:\\Users\\34937\\Desktop\\learning-rust\\iui-example\\target\\debug\\deps\\iui_example-7e5f53b6c9b28dbe.49a7n47po4ttqjl7.rcgu.o" "C:\\Users\\34937\\Desktop\\learning-rust\\iui-example\\target\\debug\\deps\\iui_example-7e5f53b6c9b28dbe.4e37gusgw81ck2ot.rcgu.o" "C:\\Users\\34937\\Desktop\\learning-rust\\iui-example\\target\\debug\\deps\\iui_example-7e5f53b6c9b28dbe.4ezmh1vbs95c5ack.rcgu.o" "C:\\Users\\34937\\Desktop\\learning-rust\\iui-example\\target\\debug\\deps\\iui_example-7e5f53b6c9b28dbe.4xq48u46a1pwiqn7.rcgu.o" "C:\\Users\\34937\\Desktop\\learning-rust\\iui-example\\target\\debug\\deps\\iui_example-7e5f53b6c9b28dbe.4yekh4a49ri9ikb0.rcgu.o" "C:\\Users\\34937\\Desktop\\learning-rust\\iui-example\\target\\debug\\deps\\iui_example-7e5f53b6c9b28dbe.4yh8x2b62dcih00t.rcgu.o" "C:\\Users\\34937\\Desktop\\learning-rust\\iui-example\\target\\debug\\deps\\iui_example-7e5f53b6c9b28dbe.4ypvbwho0bu5tnww.rcgu.o" "C:\\Users\\34937\\Desktop\\learning-rust\\iui-example\\target\\debug\\deps\\iui_example-7e5f53b6c9b28dbe.63mmpc50mjcb0lb.rcgu.o" "C:\\Users\\34937\\Desktop\\learning-rust\\iui-example\\target\\debug\\deps\\iui_example-7e5f53b6c9b28dbe.8xzrsc1ux72v29j.rcgu.o" "C:\\Users\\34937\\Desktop\\learning-rust\\iui-example\\target\\debug\\deps\\iui_example-7e5f53b6c9b28dbe.98g0d9x8aw3akpe.rcgu.o" "C:\\Users\\34937\\Desktop\\learning-rust\\iui-example\\target\\debug\\deps\\iui_example-7e5f53b6c9b28dbe.9elsx31vb4it187.rcgu.o" "C:\\Users\\34937\\Desktop\\learning-rust\\iui-example\\target\\debug\\deps\\iui_example-7e5f53b6c9b28dbe.c6lbtaiefvx3wya.rcgu.o" "C:\\Users\\34937\\Desktop\\learning-rust\\iui-example\\target\\debug\\deps\\iui_example-7e5f53b6c9b28dbe.uj1kr5j3wr6o9sy.rcgu.o" "/OUT:C:\\Users\\34937\\Desktop\\learning-rust\\iui-example\\target\\debug\\deps\\iui_example-7e5f53b6c9b28dbe.exe" "C:\\Users\\34937\\Desktop\\learning-rust\\iui-example\\target\\debug\\deps\\iui_example-7e5f53b6c9b28dbe.crate.allocator.rcgu.o" "/OPT:REF,NOICF" "/DEBUG" "/NATVIS:C:\\Users\\34937\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\etc\\intrinsic.natvis" "/NATVIS:C:\\Users\\34937\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\etc\\liballoc.natvis" "/NATVIS:C:\\Users\\34937\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\etc\\libcore.natvis" "/LIBPATH:C:\\Users\\34937\\Desktop\\learning-rust\\iui-example\\target\\debug\\deps" "/LIBPATH:C:\\Users\\34937\\Desktop\\learning-rust\\iui-example\\target\\debug\\build\\ui-sys-0d6721beb6524842\\out\\build\\out" "/LIBPATH:C:\\Users\\34937\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib" "C:\\Users\\34937\\Desktop\\learning-rust\\iui-example\\target\\debug\\deps\\libiui-9d03c669f0fd7bc0.rlib" "C:\\Users\\34937\\Desktop\\learning-rust\\iui-example\\target\\debug\\deps\\libui_sys-d2250fba2a597401.rlib" "C:\\Users\\34937\\Desktop\\learning-rust\\iui-example\\target\\debug\\deps\\liblibc-29d80453b21edd84.rlib" "C:\\Users\\34937\\Desktop\\learning-rust\\iui-example\\target\\debug\\deps\\libfailure-c342c1ff1ee122ce.rlib" "C:\\Users\\34937\\Desktop\\learning-rust\\iui-example\\target\\debug\\deps\\libbacktrace-dc01882281fe6157.rlib" "C:\\Users\\34937\\Desktop\\learning-rust\\iui-example\\target\\debug\\deps\\librustc_demangle-89653463bfc73aaf.rlib" "C:\\Users\\34937\\Desktop\\learning-rust\\iui-example\\target\\debug\\deps\\libcfg_if-354d1195934b0143.rlib" "C:\\Users\\34937\\Desktop\\learning-rust\\iui-example\\target\\debug\\deps\\libwinapi-b854eb8bfb29492c.rlib" "C:\\Users\\34937\\Desktop\\learning-rust\\iui-example\\target\\debug\\deps\\libbitflags-d08788bbacc8698c.rlib" "C:\\Users\\34937\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libstd-81327c94ecbc69b1.rlib" "C:\\Users\\34937\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libpanic_unwind-904bdc107e3475d8.rlib" "C:\\Users\\34937\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libunwind-97dd6b71b2944814.rlib" "C:\\Users\\34937\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\liblibc-7810a3f9a7e6d71a.rlib" "C:\\Users\\34937\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\liballoc_system-a6c908865d944125.rlib" "C:\\Users\\34937\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\liballoc-1337600a3a219c73.rlib" "C:\\Users\\34937\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libstd_unicode-0e6be5c2cb6a5139.rlib" "C:\\Users\\34937\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libcore-34c46a8013b46e75.rlib" "C:\\Users\\34937\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libcompiler_builtins-e8d853735a158029.rlib" "ui.lib" "libui.lib" "dbghelp.lib" "kernel32.lib" "advapi32.lib" "advapi32.lib" "ws2_32.lib" "userenv.lib" "shell32.lib" "msvcrt.lib"
      
    # the error indicate ui.lib not found
      = note: Non-UTF-8 output: LINK : fatal error LNK1181: \xce\xde\xb7\xa8\xb4\xf2\xbf\xaa\xca\xe4\xc8\xeb\xce\xc4\xbc\xfe\xa1\xb0ui.lib\xa1\xb1\r\n  
    
    error: aborting due to previous error
    
    error: Could not compile `iui-example`.
    
    To learn more, run the command again with --verbose.
    

    I have had cmake installed, and compiled it with rust 1.26 stable:

    $ cmake --version
    cmake version 3.11.2
    
    CMake suite maintained and supported by Kitware (kitware.com/cmake).
    
    $ rustc --version
    rustc 1.26.0 (a77568041 2018-05-07)
    

    Did I miss some steps to do?

    Reply
  • Readd functionality from masche842 libui-rs fork
    Readd functionality from masche842 libui-rs fork

    Apr 3, 2018

    Hi Leo,

    as bespoken on reddit. Let's do this.

    I've merged my changes onto your libui-rs fork, and readded all the functionality I need at the moment to iui. It works for me on mac OS, but I'm pretty sure there are issues on other platforms. Moreover, I'm still using my own libui-fork ([email protected]:masche842/libui) which diverged from libui upstream quite a bit.

    Nonetheless, this is all I need at the moment and with these changes in iui, there is no reason for me to maintain my own version of libui-rs. Instead, I can help you with iui.

    Reply
  • Transition to bindgen bindings.
    Transition to bindgen bindings.

    Jul 12, 2018

    This ensures that iui and ui-sys will be accurately tracking libui's development, and allows us to be more agile in terms of implementing new (and experimental) features.

    Closes #28

    @kennytm review would be appreciated

    c-bug c-enhancement k-dependencies p-high x-help wanted 
    Reply
  • Trying to `cargo build` fails on `ui-sys`
    Trying to `cargo build` fails on `ui-sys`

    Feb 19, 2018

    Doing: cargo build causes following error on Windows 7 (64bit) and Rust 1.24.

    _Compiling ui-sys v0.1.1 error: failed to run custom build command for ui-sys v0.1.1

    --- stderr fatal: Not a git repository (or any of the parent directories): .git thread 'main' panicked at '_

    The trace leads to: 10: build_script_build::main at .\build.rs:15

    If I initialise a git-repo inside the folder, it just keeps the same error-trace but no actual mentioning of a fatal error.

    c-bug p-high x-help wanted 
    Reply