Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Collect frequently used C/C++ packages #10

Open
waruqi opened this issue Mar 29, 2019 · 133 comments
Open

Collect frequently used C/C++ packages #10

waruqi opened this issue Mar 29, 2019 · 133 comments

Comments

@waruqi
Copy link
Member

waruqi commented Mar 29, 2019

Please tell us the third-party c/c++ packages you need. We will try to add it to the official repository first.

Of course, we also hope that everyone can help to contribute some packages to the repository. 🙏

Thanks!

We can see all collected packages in official repository. https://github.com/xmake-io/xmake-repo/tree/dev/packages

Or we can run the following command to show the currect package list.

cd xmake-repo
xmake l scripts/list.lua
@waruqi
Copy link
Member Author

waruqi commented Mar 29, 2019

#1 ffmpeg

@waruqi waruqi changed the title Collect C/C++ libraries Collect C/C++ packages Mar 29, 2019
@waruqi waruqi changed the title Collect C/C++ packages Collect frequently used C/C++ packages Mar 29, 2019
@waruqi waruqi pinned this issue Mar 29, 2019
@wutiantong
Copy link

@waruqi
Copy link
Member Author

waruqi commented Apr 2, 2019

https://github.com/nlohmann/json

This package has been collected, you can see: https://github.com/xmake-io/xmake-repo/tree/master/packages/n/nlohmann_json

@lineCode
Copy link

lineCode commented Apr 3, 2019

@waruqi
Copy link
Member Author

waruqi commented Apr 3, 2019

https://github.com/onqtam/doctest

@wutiantong done

https://github.com/xmake-io/xmake-repo/tree/master/packages/d/doctest

@nikhedonia
Copy link

nikhedonia commented Apr 9, 2019

I hope this is helpful:

Here is a list of Buckaroo's officially supported libraries and then there is more on our wishlist.

@waruqi
Copy link
Member Author

waruqi commented Apr 9, 2019

I hope this is helpful:

Here is a list of Buckaroo's officially supported libraries and then there is more on our wishlist.

Ok, I will look at it.

Thanks!

@Berrysoft
Copy link

Berrysoft commented Apr 9, 2019

Here are the libraries supported by vcpkg, maybe it's helpful.

@kassane
Copy link

kassane commented Apr 10, 2019

Nana Library

@waruqi
Copy link
Member Author

waruqi commented Apr 10, 2019

Nana Library

Ok, I will add it.

@waruqi
Copy link
Member Author

waruqi commented Apr 12, 2019

https://www.cairographics.org/

@lineCode done

add_requires("cairo", "pixman")

Support linux, macOS and windows.

@waruqi
Copy link
Member Author

waruqi commented Jul 23, 2019

Add boost library. for example:

add_requires("boost")
target("test")
    set_kind("binary")
    set_languages("c++14")
    add_files("src/*.cpp")
    add_packages("boost")

Only add the given boost library.

add_requires("boost", {alias = "boost-context", configs = {context = true}})
target("test")
    set_kind("binary")
    set_languages("c++14")
    add_files("src/*.cpp")
    add_packages("boost-context")

Show all boost libraries configuration

xmake require --info boost

      -> configs:
         -> multi: Enable multi-thread support. (default: true)
         -> filesystem: Enable filesystem library. (default: true)
         -> fiber: Enable fiber library. (default: false)
         -> coroutine: Enable coroutine library. (default: false)
         -> context: Enable context library. (default: false)
         -> thread: Enable thread library. (default: false)
         -> regex: Enable regex library. (default: false)
         -> system: Enable system library. (default: false)
         -> container: Enable container library. (default: false)
         -> exception: Enable exception library. (default: false)
         -> timer: Enable timer library. (default: false)
         -> atomic: Enable atomic library. (default: false)
         -> graph: Enable graph library. (default: false)
         -> serialization: Enable serialization library. (default: false)
         -> random: Enable random library. (default: false)
         -> wave: Enable wave library. (default: false)
         -> date_time: Enable date_time library. (default: false)
         -> locale: Enable locale library. (default: false)
         -> iostreams: Enable iostreams library. (default: false)

@romatthe
Copy link

The big one that's currently missing for me is Poco.
Another one that I would like to see is but is less important is bs::framework.

@kassane
Copy link

kassane commented Oct 2, 2019

Suggestion: Inja


Nana Library is outdated: v1.6.1 -> 1.7.2
add_versions("1.7.2", "e2efb3b7619e4ef3b6de93f8afc70ff477ec6cabf4f9740f0d786904c790613f")
I locally modified the repo script for this library and just had a problem with the test:

checking for the unzip ... /usr/bin/unzip
checking for the git ... /usr/bin/git
checking for the gzip ... /usr/bin/gzip
checking for the tar ... /usr/bin/tar
checking for the ping ... /usr/bin/ping
pinging for the host(github.com) ... 102 ms
pinging for the host(gitlab.com) ... 143 ms
pinging for the host(gitee.com) ... 362 ms
updating repositories .. 
cloning repository(xmake-repo): https://github.com/xmake-io/xmake-repo.git to /home/kassane/.xmake/repositories/xmake-repo ..
/usr/bin/git clone https://github.com/xmake-io/xmake-repo.git -b master /home/kassane/.xmake/repositories/xmake-repo
Cloning into '/home/kassane/.xmake/repositories/xmake-repo'...
remote: Enumerating objects: 83, done.
remote: Counting objects: 100% (83/83), done.
remote: Compressing objects: 100% (57/57), done.
remote: Total 2798 (delta 34), reused 46 (delta 12), pack-reused 2715
Receiving objects: 100% (2798/2798), 462.04 KiB | 650.00 KiB/s, done.
Resolving deltas: 100% (1403/1403), done.
ok
checking for the xmake::nana ... no
checking for the brew ... no
checking for the vcpkg directory ... no
checking for the pkg-config ... /usr/bin/pkg-config
checking for the nana ... no
note: try installing these packages (pass -y to skip confirm)?
in my-repo:
  -> nana 1.7.2 
please input: y (y/n)

checking for the curl ... /usr/bin/curl
/usr/bin/curl -SL -A Xmake/2.2.8 (Linux;x86_64 5.3.1-arch1-1-ARCH) curl/7.66.0 https://github.com/cnjinhao/nana/archive/v1.7.2.tar.gz -o v1.7.2.tar.gz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   121    0   121    0     0    227      0 --:--:-- --:--:-- --:--:--   227
100  557k    0  557k    0     0   327k      0 --:--:--  0:00:01 --:--:-- 1375k
/usr/bin/tar -xvf v1.7.2.tar.gz -C source.tmp
nana-1.7.2/
...
  => download https://github.com/cnjinhao/nana/archive/v1.7.2.tar.gz .. ok                                                         
cmake -DCMAKE_INSTALL_PREFIX=/home/kassane/.xmake/cache/packages/1910/n/nana/1.7.2/source/nana-1.7.2/build_619CEAD9/install ..
-- The CXX compiler identification is GNU 9.1.0
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
The compiled Nana library will be installed in /home/kassane/.xmake/cache/packages/1910/n/nana/1.7.2/source/nana-1.7.2/build_619CEAD9/install/lib
The Nana include files will be installed in /home/kassane/.xmake/cache/packages/1910/n/nana/1.7.2/source/nana-1.7.2/build_619CEAD9/install/include
-- Found X11: /usr/include   
-- Looking for XOpenDisplay in /usr/lib/libX11.so;/usr/lib/libXext.so
-- Looking for XOpenDisplay in /usr/lib/libX11.so;/usr/lib/libXext.so - found
-- Looking for gethostbyname
-- Looking for gethostbyname - found
-- Looking for connect
-- Looking for connect - found
-- Looking for remove
-- Looking for remove - found
-- Looking for shmat
-- Looking for shmat - found
-- Looking for IceConnectionNumber in ICE
-- Looking for IceConnectionNumber in ICE - found
-- Found Freetype: /usr/lib/libfreetype.so (found version "2.10.1") 
-- Found PkgConfig: /usr/bin/pkg-config (found version "1.6.3") 
-- Checking for module 'fontconfig'
--   Found fontconfig, version 2.13.91
-- Found Fontconfig: /usr/lib/libfontconfig.so  
-- Looking for C++ include pthread.h
-- Looking for C++ include pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
-- Check if compiler accepts -pthread
-- Check if compiler accepts -pthread - yes
-- Found Threads: TRUE  
-- Configuring done
-- Generating done
-- Build files have been written to: /home/kassane/.xmake/cache/packages/1910/n/nana/1.7.2/source/nana-1.7.2/build_619CEAD9
make -j4
Scanning dependencies of target nana
[  1%] Building CXX object CMakeFiles/nana.dir/source/basic_types.cpp.o
[  2%] Building CXX object CMakeFiles/nana.dir/source/charset.cpp.o
...
[ 98%] Building CXX object CMakeFiles/nana.dir/source/threads/pool.cpp.o
[100%] Linking CXX static library libnana.a
[100%] Built target nana
make install
[100%] Built target nana
Install the project...
-- Install configuration: ""
-- Installing: /home/kassane/.xmake/cache/packages/1910/n/nana/1.7.2/source/nana-1.7.2/build_619CEAD9/install/lib/libnana.a
-- Installing: /home/kassane/.xmake/cache/packages/1910/n/nana/1.7.2/source/nana-1.7.2/build_619CEAD9/install/include/nana
-- Installing: /home/kassane/.xmake/cache/packages/1910/n/nana/1.7.2/source/nana-1.7.2/build_619CEAD9/install/include/nana/config.hpp
...
-- Installing: /home/kassane/.xmake/cache/packages/1910/n/nana/1.7.2/source/nana-1.7.2/build_619CEAD9/install/include/nana/system/platform.hpp
-- Installing: /home/kassane/.xmake/cache/packages/1910/n/nana/1.7.2/source/nana-1.7.2/build_619CEAD9/install/include/nana/push_ignore_diagnostic
checking for the xmake::nana ... 1.7.2
{ 
  links = { 
    "nana" 
  },
  linkdirs = { 
    "/home/kassane/.xmake/packages/n/nana/1.7.2/c5156c97e2e9dec5edeaa17987d59d44/lib" 
  },
  version = "1.7.2",
  includedirs = { 
    "/home/kassane/.xmake/packages/n/nana/1.7.2/c5156c97e2e9dec5edeaa17987d59d44/include" 
  } 
}

patching /home/kassane/.xmake/packages/n/nana/1.7.2/c5156c97e2e9dec5edeaa17987d59d44/lib/pkgconfig/nana.pc ..
checking for the gcc ... /usr/bin/gcc
checking for the c++ compiler (cxx) ... gcc
checking for the ccache ... no
checking for the g++ ... /usr/bin/g++
checking for the linker (ld) ... g++
> checking for the c++ links(nana)
> checking for the c++ snippet(test)
error: assertion failed!
  => install nana 1.7.2 .. failed                                                                                                  
error: install failed!

@waruqi
Copy link
Member Author

waruqi commented Oct 3, 2019

Suggestion: Inja

done

Nana Library is outdated: v1.6.1 -> 1.7.2
add_versions("1.7.2", "e2efb3b7619e4ef3b6de93f8afc70ff477ec6cabf4f9740f0d786904c790613f")
I locally modified the repo script for this library and just had a problem with the test:

I attempt to fix it, you can try it again.

@kassane
Copy link

kassane commented Oct 3, 2019

Currently in my local repository, I removed this function. After removal the error does not occur.

on_test(function (package)

@elitepleb
Copy link

Adding Raylib would be appreciated.

@waruqi
Copy link
Member Author

waruqi commented Oct 4, 2019

Currently in my local repository, I removed this function. After removal the error does not occur.

on_test(function (package)

on_test is required, you can modify the test code to pass it.

@waruqi
Copy link
Member Author

waruqi commented Oct 5, 2019

Adding Raylib would be appreciated.

I've only added raylib on macOS now. https://github.com/xmake-io/xmake-repo/blob/master/packages/r/raylib/xmake.lua

@kassane
Copy link

kassane commented Oct 5, 2019

Currently in my local repository, I removed this function. After removal the error does not occur.

on_test(function (package)

on_test is required, you can modify the test code to pass it.

I downloaded your new script and the error was still in the assert. However in the local repo I added the line below and it did not occur but the error.

add_links("pthread", "jpeg", "png")

Output:

patching /home/kassane/.xmake/packages/n/nana/1.7.2/c5156c97e2e9dec5edeaa17987d59d44/lib/pkgconfig/nana.pc ..
checking for the gcc ... /usr/bin/gcc
checking for the c++ compiler (cxx) ... gcc
checking for the ccache ... no
> checking for the c++ snippet(test)
  => install nana 1.7.2 .. ok                                                                                                      
configure
{
    arch = x86_64
    ccache = true
    mode = release
    ndk_stdcxx = true
    host = linux
    kind = static
    buildir = build
    cxx = /usr/bin/gcc
    plat = linux
}
checking for the g++ ... /usr/bin/g++
checking for the linker (ld) ... g++
checking for the /usr/bin/gcc ... ok
checking for the flags (-O3) ... ok
[  0%]: compiling.release src/main.cpp
/usr/bin/gcc -c -fvisibility=hidden -O3 -I/home/kassane/.xmake/packages/n/nana/1.7.2/c5156c97e2e9dec5edeaa17987d59d44/include -m64 -I/usr/local/include -I/usr/include -o build/.objs/Nana_test/linux/x86_64/release/src/main.cpp.o src/main.cpp
checking for the flags (-MMD -MF) ... ok
[100%]: linking.release Nana_test
/usr/bin/g++ -o build/linux/x86_64/release/Nana_test build/.objs/Nana_test/linux/x86_64/release/src/main.cpp.o -s -fvisibility=hidden -m64 -L/usr/local/lib -L/usr/lib
build ok!👌

@elitepleb
Copy link

Thank you for your effort.
Maybe this can help finish the cmake part of raylib.
https://github.com/raysan5/raylib/blob/master/projects/CMake/CMakeLists.txt

@waruqi
Copy link
Member Author

waruqi commented Oct 6, 2019

I downloaded your new script and the error was still in the assert. However in the local repo I added the line below and it did not occur but the error.

add_links("pthread", "jpeg", "png")

@kassane Can you show me the error output?

It's a bit strange, NANA_CMAKE_ENABLE_JPEG is OFF by default. Why is the jpeg library still used?

https://github.com/cnjinhao/nana/blob/master/build/cmake/enable_jpeg.cmake

option(NANA_CMAKE_ENABLE_JPEG "Enable the use of JPEG" OFF)
option(NANA_CMAKE_LIBJPEG_FROM_OS "Use libjpeg from operating system." ON)
option(JPEG_HAVE_BOOLEAN "Defining HAVE_BOOLEAN before including jpeglib.h" OFF)

# todo: decide - PUBLIC vs PRIVATE

if(NANA_CMAKE_ENABLE_JPEG)

@CaffreySun
Copy link

pdfium
pdfium github 镜像
开源的编译脚本pdfium-binaries

@leaf-potato
Copy link

支持braft(百度开源的raft协议实现)github地址

@IcyVizi
Copy link

IcyVizi commented Mar 1, 2023

@TechArtLife
Copy link

@inter1965
Copy link

concurrencpp里面漏了linux

    on_install("macosx", "windows", function (package)
        assert(package:has_tool("cxx", "clang", "cl"), "compiler not supported!")
        local configs = {}
        table.insert(configs, "-DCMAKE_BUILD_TYPE=" .. (package:debug() and "Debug" or "Release"))
        table.insert(configs, "-DBUILD_SHARED_LIBS=" .. (package:config("shared") and "ON" or "OFF"))
        import("package.tools.cmake").install(package, configs)
    end)

@waruqi
Copy link
Member Author

waruqi commented Mar 23, 2023

concurrencpp里面漏了linux

    on_install("macosx", "windows", function (package)
        assert(package:has_tool("cxx", "clang", "cl"), "compiler not supported!")
        local configs = {}
        table.insert(configs, "-DCMAKE_BUILD_TYPE=" .. (package:debug() and "Debug" or "Release"))
        table.insert(configs, "-DBUILD_SHARED_LIBS=" .. (package:config("shared") and "ON" or "OFF"))
        import("package.tools.cmake").install(package, configs)
    end)

不是漏了,是暂时没支持,有可能当初遇到问题,暂时没时间解决,也可能是库本身构建脚本,或者代码上编译上不支持,或者有其他问题

你可以提 pr 过来,改进完善下,只要ci 能过,就会merge

@ArronPJ
Copy link

ArronPJ commented Mar 30, 2023

[Magick++], in ImageMagick
Thank you.

@inter1965
Copy link

nanobind is the successor of pybind11

https://github.com/wjakob/nanobind

@masx200
Copy link

masx200 commented May 16, 2023

cppunit?

@IcyVizi
Copy link

IcyVizi commented May 31, 2023

@varunsindwani
Copy link

cimgui: https://github.com/cimgui/cimgui

@YYzzzor
Copy link

YYzzzor commented Jul 11, 2023

PETSc: https://petsc.org/release/

@waruqi
Copy link
Member Author

waruqi commented Aug 18, 2023

@Issues-translate-bot
Copy link

Bot detected the issue body's language is not English, translate it automatically.


https://github.com/PortAudio/portaudio
https://github.com/eProsima/Fast-CDR

done

@xiaozzzzwww
Copy link

xiaozzzzwww commented Sep 3, 2023

@TTopoo
Copy link

TTopoo commented Sep 4, 2023

rocketmq-clients: https://github.com/apache/rocketmq-clients/tree/master/cpp
Thank you.

@Richarddestiny
Copy link

log4cpp

@stevexuzeta
Copy link

@maximegmd
Copy link
Contributor

@Latias94
Copy link
Contributor

@hxhc
Copy link
Contributor

hxhc commented Feb 20, 2024

https://github.com/devernay/cminpack
cminpack是一个常用的数学优化包,可用于求解多元非线性方程,是一个较底层的库,与blas/lapack类似

@ChunelFeng
Copy link

您好,CGrpah 是一款简单好用、无任何三方依赖的 DAG调度框架。
自身也提供了 xmake 的编译方式。

希望可以加入到 xmake-repo 中,方便大家使用。

@Issues-translate-bot
Copy link

Bot detected the issue body's language is not English, translate it automatically.


Hello, CGrpah is a simple and easy-to-use DAG scheduling framework without any third-party dependencies.
It also provides the xmake compilation method.

I hope it can be added to xmake-repo for everyone’s convenience.

@star-hengxing
Copy link
Contributor

  • fastgltf
  • cminpack
  • CGrpah

Done

@c8ef c8ef unpinned this issue Apr 15, 2024
@c8ef c8ef pinned this issue Apr 15, 2024
@zeroxer
Copy link
Contributor

zeroxer commented Apr 27, 2024

@lyongji
Copy link

lyongji commented Jun 7, 2024

您好,我发现xrepo中godotcpp4,现在只有4.0版本,现在godotcpp仓库已经更新4.1,4.2版了,4.0版本不和4.1之后的兼容,希望作者能更新一下.
https://github.com/godotengine/godot-cpp.git

@Issues-translate-bot
Copy link

Bot detected the issue body's language is not English, translate it automatically.


Hello, I found that godotcpp4 in xrepo now only has version 4.0. Now the godotcpp warehouse has been updated to version 4.1 and 4.2. Version 4.0 is not compatible with versions after 4.1. I hope the author can update it.
https://github.com/godotengine/godot-cpp.git

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests