pkg-config work

This commit is contained in:
Hunter 2024-09-29 10:08:34 -04:00
parent 3ddb2943bc
commit fc1964f766
10 changed files with 152 additions and 501 deletions

View file

@ -7,5 +7,5 @@ add_subdirectory("vendor/sol2")
include_directories("include")
include_directories("vendor/sol2/include")
add_executable(grbc src/main.cc src/utils.cc src/file.cc src/target_exe.cc src/platform.cc src/ninja.cc src/generator.cc src/target_lib.cc src/package.cc)
add_executable(grbc src/main.cc src/utils.cc src/file.cc src/target_exe.cc src/platform.cc src/ninja.cc src/generator.cc src/target_lib.cc src/package.cc src/ext.cc src/ext_pkg_config.cc)
target_link_libraries(grbc sol2 lua)

34
HConfig
View file

@ -1,6 +1,35 @@
grbc_want_version("1.0")
grbc_load_platform("platform.hcfg")
local grbc_pkg_config_ext = grbc_library(LibraryConfig.new({
name = "libgrbc_pkg_config",
language_type = LanguageType.Cpp,
files = {
grbc_file("src/ext_pkg_config.cc")
},
lib_type = LibraryType.Shared,
requirements = {},
compile_flags = {},
linker_flags = {},
include_dirs = {
"include",
"vendor/sol2/include"
},
package_config = PackageConfig.new({
name = "libgrbc_pkg_config",
libraries = {},
include_dirs = {
grbc_file("include"),
grbc_file("vendor/sol2/include")
},
compile_flags = {},
linker_flags = {},
})
}))
local grbc_lib = grbc_library(LibraryConfig.new({
name = "libgrbc",
language_type = LanguageType.Cpp,
@ -15,7 +44,7 @@ local grbc_lib = grbc_library(LibraryConfig.new({
grbc_file("src/package.cc"),
grbc_file("src/ext.cc")
},
lib_type = LibraryType.Shared,
lib_type = LibraryType.Static,
requirements = {},
compile_flags = {},
@ -51,7 +80,8 @@ local grbc_exe = grbc_executable(ExecutableConfig.new({
linker_flags = "-llua -lm -ldl"
}),
grbc_pkg("libgrbc")
grbc_pkg("libgrbc"),
grbc_pkg("libgrbc_pkg_config")
},
compile_flags = {
},

View file

@ -40,65 +40,74 @@ rule archive
command = rm -f $out; ar crs $out $in
description = Creating static library $out
## Compile: src/ext_pkg_config.cc ##
build $builddir/src/ext_pkg_config.o: cxx src/ext_pkg_config.cc
p_cflags = -fPIC -Iinclude -Ivendor/sol2/include
## Link: libgrbc_pkg_config.so ##
build $builddir/libgrbc_pkg_config.so: link_cxx $builddir/src/ext_pkg_config.o
p_linker_flags = -shared -Lbuild -Wl,-rpath,build:.
p_cflags =
## Compile: src/file.cc ##
build $builddir/src/file.o: cxx src/file.cc
p_cflags = -fPIC -Iinclude -Ivendor/sol2/include
p_cflags = -Iinclude -Ivendor/sol2/include
## Compile: src/ninja.cc ##
build $builddir/src/ninja.o: cxx src/ninja.cc
p_cflags = -fPIC -Iinclude -Ivendor/sol2/include
p_cflags = -Iinclude -Ivendor/sol2/include
## Compile: src/platform.cc ##
build $builddir/src/platform.o: cxx src/platform.cc
p_cflags = -fPIC -Iinclude -Ivendor/sol2/include
p_cflags = -Iinclude -Ivendor/sol2/include
## Compile: src/target_exe.cc ##
build $builddir/src/target_exe.o: cxx src/target_exe.cc
p_cflags = -fPIC -Iinclude -Ivendor/sol2/include
p_cflags = -Iinclude -Ivendor/sol2/include
## Compile: src/utils.cc ##
build $builddir/src/utils.o: cxx src/utils.cc
p_cflags = -fPIC -Iinclude -Ivendor/sol2/include
p_cflags = -Iinclude -Ivendor/sol2/include
## Compile: src/generator.cc ##
build $builddir/src/generator.o: cxx src/generator.cc
p_cflags = -fPIC -Iinclude -Ivendor/sol2/include
p_cflags = -Iinclude -Ivendor/sol2/include
## Compile: src/target_lib.cc ##
build $builddir/src/target_lib.o: cxx src/target_lib.cc
p_cflags = -fPIC -Iinclude -Ivendor/sol2/include
p_cflags = -Iinclude -Ivendor/sol2/include
## Compile: src/package.cc ##
build $builddir/src/package.o: cxx src/package.cc
p_cflags = -fPIC -Iinclude -Ivendor/sol2/include
p_cflags = -Iinclude -Ivendor/sol2/include
## Compile: src/ext.cc ##
build $builddir/src/ext.o: cxx src/ext.cc
p_cflags = -fPIC -Iinclude -Ivendor/sol2/include
p_cflags = -Iinclude -Ivendor/sol2/include
## Link: libgrbc.so ##
## Link: libgrbc.a ##
build $builddir/libgrbc.so: link_cxx $builddir/src/file.o $builddir/src/ninja.o $builddir/src/platform.o $builddir/src/target_exe.o $builddir/src/utils.o $builddir/src/generator.o $builddir/src/target_lib.o $builddir/src/package.o $builddir/src/ext.o
p_linker_flags = -shared -Lbuild -Wl,-rpath,build:.
p_cflags =
build $builddir/libgrbc.a: archive $builddir/src/file.o $builddir/src/ninja.o $builddir/src/platform.o $builddir/src/target_exe.o $builddir/src/utils.o $builddir/src/generator.o $builddir/src/target_lib.o $builddir/src/package.o $builddir/src/ext.o
## Compile: src/main.cc ##
build $builddir/src/main.o: cxx src/main.cc
p_cflags = -Iinclude -Ivendor/sol2/include
p_cflags = -Iinclude -Ivendor/sol2/include -Iinclude -Ivendor/sol2/include
## Link: grbc ##
build $builddir/grbc: link_cxx $builddir/src/main.o | $builddir/libgrbc.so
p_linker_flags = -llua -lm -ldl build/libgrbc.so -Lbuild -Wl,-rpath,build:.
build $builddir/grbc: link_cxx $builddir/src/main.o | $builddir/libgrbc.a $builddir/libgrbc_pkg_config.so
p_linker_flags = -llua -lm -ldl build/libgrbc.a build/libgrbc_pkg_config.so -Lbuild -Wl,-rpath,build:.
p_cflags =

View file

@ -1,506 +1,74 @@
[
{
"directory": "/home/interfiber/dev/grbc/build",
"command": "",
"file": "CMakeFiles/grbc.dir",
"output": "cmake_object_order_depends_target_grbc"
"directory": "/home/interfiber/dev/grbc",
"command": "/usr/lib64/ccache/g++ -MMD -MT build/src/file.o -MF build/src/file.o.d -fPIC -Iinclude -Ivendor/sol2/include -c src/file.cc -o build/src/file.o",
"file": "src/file.cc",
"output": "build/src/file.o"
},
{
"directory": "/home/interfiber/dev/grbc/build",
"command": "/usr/lib64/ccache/g++ -I/home/interfiber/dev/grbc/include -isystem /home/interfiber/dev/grbc/vendor/sol2/include -O2 -g -DNDEBUG -MD -MT CMakeFiles/grbc.dir/src/main.cc.o -MF CMakeFiles/grbc.dir/src/main.cc.o.d -o CMakeFiles/grbc.dir/src/main.cc.o -c /home/interfiber/dev/grbc/src/main.cc",
"file": "/home/interfiber/dev/grbc/src/main.cc",
"output": "CMakeFiles/grbc.dir/src/main.cc.o"
"directory": "/home/interfiber/dev/grbc",
"command": "/usr/lib64/ccache/g++ -MMD -MT build/src/ninja.o -MF build/src/ninja.o.d -fPIC -Iinclude -Ivendor/sol2/include -c src/ninja.cc -o build/src/ninja.o",
"file": "src/ninja.cc",
"output": "build/src/ninja.o"
},
{
"directory": "/home/interfiber/dev/grbc/build",
"command": "/usr/lib64/ccache/g++ -I/home/interfiber/dev/grbc/include -isystem /home/interfiber/dev/grbc/vendor/sol2/include -O2 -g -DNDEBUG -MD -MT CMakeFiles/grbc.dir/src/utils.cc.o -MF CMakeFiles/grbc.dir/src/utils.cc.o.d -o CMakeFiles/grbc.dir/src/utils.cc.o -c /home/interfiber/dev/grbc/src/utils.cc",
"file": "/home/interfiber/dev/grbc/src/utils.cc",
"output": "CMakeFiles/grbc.dir/src/utils.cc.o"
"directory": "/home/interfiber/dev/grbc",
"command": "/usr/lib64/ccache/g++ -MMD -MT build/src/platform.o -MF build/src/platform.o.d -fPIC -Iinclude -Ivendor/sol2/include -c src/platform.cc -o build/src/platform.o",
"file": "src/platform.cc",
"output": "build/src/platform.o"
},
{
"directory": "/home/interfiber/dev/grbc/build",
"command": "/usr/lib64/ccache/g++ -I/home/interfiber/dev/grbc/include -isystem /home/interfiber/dev/grbc/vendor/sol2/include -O2 -g -DNDEBUG -MD -MT CMakeFiles/grbc.dir/src/file.cc.o -MF CMakeFiles/grbc.dir/src/file.cc.o.d -o CMakeFiles/grbc.dir/src/file.cc.o -c /home/interfiber/dev/grbc/src/file.cc",
"file": "/home/interfiber/dev/grbc/src/file.cc",
"output": "CMakeFiles/grbc.dir/src/file.cc.o"
"directory": "/home/interfiber/dev/grbc",
"command": "/usr/lib64/ccache/g++ -MMD -MT build/src/target_exe.o -MF build/src/target_exe.o.d -fPIC -Iinclude -Ivendor/sol2/include -c src/target_exe.cc -o build/src/target_exe.o",
"file": "src/target_exe.cc",
"output": "build/src/target_exe.o"
},
{
"directory": "/home/interfiber/dev/grbc/build",
"command": "/usr/lib64/ccache/g++ -I/home/interfiber/dev/grbc/include -isystem /home/interfiber/dev/grbc/vendor/sol2/include -O2 -g -DNDEBUG -MD -MT CMakeFiles/grbc.dir/src/target_exe.cc.o -MF CMakeFiles/grbc.dir/src/target_exe.cc.o.d -o CMakeFiles/grbc.dir/src/target_exe.cc.o -c /home/interfiber/dev/grbc/src/target_exe.cc",
"file": "/home/interfiber/dev/grbc/src/target_exe.cc",
"output": "CMakeFiles/grbc.dir/src/target_exe.cc.o"
"directory": "/home/interfiber/dev/grbc",
"command": "/usr/lib64/ccache/g++ -MMD -MT build/src/utils.o -MF build/src/utils.o.d -fPIC -Iinclude -Ivendor/sol2/include -c src/utils.cc -o build/src/utils.o",
"file": "src/utils.cc",
"output": "build/src/utils.o"
},
{
"directory": "/home/interfiber/dev/grbc/build",
"command": "/usr/lib64/ccache/g++ -I/home/interfiber/dev/grbc/include -isystem /home/interfiber/dev/grbc/vendor/sol2/include -O2 -g -DNDEBUG -MD -MT CMakeFiles/grbc.dir/src/platform.cc.o -MF CMakeFiles/grbc.dir/src/platform.cc.o.d -o CMakeFiles/grbc.dir/src/platform.cc.o -c /home/interfiber/dev/grbc/src/platform.cc",
"file": "/home/interfiber/dev/grbc/src/platform.cc",
"output": "CMakeFiles/grbc.dir/src/platform.cc.o"
"directory": "/home/interfiber/dev/grbc",
"command": "/usr/lib64/ccache/g++ -MMD -MT build/src/generator.o -MF build/src/generator.o.d -fPIC -Iinclude -Ivendor/sol2/include -c src/generator.cc -o build/src/generator.o",
"file": "src/generator.cc",
"output": "build/src/generator.o"
},
{
"directory": "/home/interfiber/dev/grbc/build",
"command": "/usr/lib64/ccache/g++ -I/home/interfiber/dev/grbc/include -isystem /home/interfiber/dev/grbc/vendor/sol2/include -O2 -g -DNDEBUG -MD -MT CMakeFiles/grbc.dir/src/ninja.cc.o -MF CMakeFiles/grbc.dir/src/ninja.cc.o.d -o CMakeFiles/grbc.dir/src/ninja.cc.o -c /home/interfiber/dev/grbc/src/ninja.cc",
"file": "/home/interfiber/dev/grbc/src/ninja.cc",
"output": "CMakeFiles/grbc.dir/src/ninja.cc.o"
"directory": "/home/interfiber/dev/grbc",
"command": "/usr/lib64/ccache/g++ -MMD -MT build/src/target_lib.o -MF build/src/target_lib.o.d -fPIC -Iinclude -Ivendor/sol2/include -c src/target_lib.cc -o build/src/target_lib.o",
"file": "src/target_lib.cc",
"output": "build/src/target_lib.o"
},
{
"directory": "/home/interfiber/dev/grbc/build",
"command": "/usr/lib64/ccache/g++ -I/home/interfiber/dev/grbc/include -isystem /home/interfiber/dev/grbc/vendor/sol2/include -O2 -g -DNDEBUG -MD -MT CMakeFiles/grbc.dir/src/generator.cc.o -MF CMakeFiles/grbc.dir/src/generator.cc.o.d -o CMakeFiles/grbc.dir/src/generator.cc.o -c /home/interfiber/dev/grbc/src/generator.cc",
"file": "/home/interfiber/dev/grbc/src/generator.cc",
"output": "CMakeFiles/grbc.dir/src/generator.cc.o"
"directory": "/home/interfiber/dev/grbc",
"command": "/usr/lib64/ccache/g++ -MMD -MT build/src/package.o -MF build/src/package.o.d -fPIC -Iinclude -Ivendor/sol2/include -c src/package.cc -o build/src/package.o",
"file": "src/package.cc",
"output": "build/src/package.o"
},
{
"directory": "/home/interfiber/dev/grbc/build",
"command": ": && /usr/lib64/ccache/g++ -O2 -g -DNDEBUG CMakeFiles/grbc.dir/src/main.cc.o CMakeFiles/grbc.dir/src/utils.cc.o CMakeFiles/grbc.dir/src/file.cc.o CMakeFiles/grbc.dir/src/target_exe.cc.o CMakeFiles/grbc.dir/src/platform.cc.o CMakeFiles/grbc.dir/src/ninja.cc.o CMakeFiles/grbc.dir/src/generator.cc.o -o grbc -llua && :",
"file": "CMakeFiles/grbc.dir/src/main.cc.o",
"output": "grbc"
"directory": "/home/interfiber/dev/grbc",
"command": "/usr/lib64/ccache/g++ -MMD -MT build/src/ext.o -MF build/src/ext.o.d -fPIC -Iinclude -Ivendor/sol2/include -c src/ext.cc -o build/src/ext.o",
"file": "src/ext.cc",
"output": "build/src/ext.o"
},
{
"directory": "/home/interfiber/dev/grbc/build",
"command": "",
"file": "CMakeFiles/edit_cache.util",
"output": "edit_cache"
"directory": "/home/interfiber/dev/grbc",
"command": "/usr/lib64/ccache/g++ -o build/libgrbc.so build/src/file.o build/src/ninja.o build/src/platform.o build/src/target_exe.o build/src/utils.o build/src/generator.o build/src/target_lib.o build/src/package.o build/src/ext.o -shared -Lbuild -Wl,-rpath,build:. ",
"file": "build/src/file.o",
"output": "build/libgrbc.so"
},
{
"directory": "/home/interfiber/dev/grbc/build",
"command": "",
"file": "CMakeFiles/rebuild_cache.util",
"output": "rebuild_cache"
"directory": "/home/interfiber/dev/grbc",
"command": "/usr/lib64/ccache/g++ -MMD -MT build/src/main.o -MF build/src/main.o.d -Iinclude -Ivendor/sol2/include -c src/main.cc -o build/src/main.o",
"file": "src/main.cc",
"output": "build/src/main.o"
},
{
"directory": "/home/interfiber/dev/grbc/build",
"command": "cd /home/interfiber/dev/grbc/build && /usr/bin/cmake -P cmake_install.cmake",
"file": "all",
"output": "CMakeFiles/install.util"
},
{
"directory": "/home/interfiber/dev/grbc/build",
"command": "",
"file": "CMakeFiles/install.util",
"output": "install"
},
{
"directory": "/home/interfiber/dev/grbc/build",
"command": "cd /home/interfiber/dev/grbc/build && /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake",
"file": "all",
"output": "CMakeFiles/install/local.util"
},
{
"directory": "/home/interfiber/dev/grbc/build",
"command": "",
"file": "CMakeFiles/install/local.util",
"output": "install/local"
},
{
"directory": "/home/interfiber/dev/grbc/build",
"command": "cd /home/interfiber/dev/grbc/build && /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake",
"file": "all",
"output": "CMakeFiles/install/strip.util"
},
{
"directory": "/home/interfiber/dev/grbc/build",
"command": "",
"file": "CMakeFiles/install/strip.util",
"output": "install/strip"
},
{
"directory": "/home/interfiber/dev/grbc/build",
"command": "",
"file": "vendor/sol2/CMakeFiles/Experimental",
"output": "vendor/sol2/Experimental"
},
{
"directory": "/home/interfiber/dev/grbc/build",
"command": "",
"file": "vendor/sol2/CMakeFiles/Nightly",
"output": "vendor/sol2/Nightly"
},
{
"directory": "/home/interfiber/dev/grbc/build",
"command": "",
"file": "vendor/sol2/CMakeFiles/Continuous",
"output": "vendor/sol2/Continuous"
},
{
"directory": "/home/interfiber/dev/grbc/build",
"command": "",
"file": "vendor/sol2/CMakeFiles/NightlyMemoryCheck",
"output": "vendor/sol2/NightlyMemoryCheck"
},
{
"directory": "/home/interfiber/dev/grbc/build",
"command": "",
"file": "vendor/sol2/CMakeFiles/NightlyStart",
"output": "vendor/sol2/NightlyStart"
},
{
"directory": "/home/interfiber/dev/grbc/build",
"command": "",
"file": "vendor/sol2/CMakeFiles/NightlyUpdate",
"output": "vendor/sol2/NightlyUpdate"
},
{
"directory": "/home/interfiber/dev/grbc/build",
"command": "",
"file": "vendor/sol2/CMakeFiles/NightlyConfigure",
"output": "vendor/sol2/NightlyConfigure"
},
{
"directory": "/home/interfiber/dev/grbc/build",
"command": "",
"file": "vendor/sol2/CMakeFiles/NightlyBuild",
"output": "vendor/sol2/NightlyBuild"
},
{
"directory": "/home/interfiber/dev/grbc/build",
"command": "",
"file": "vendor/sol2/CMakeFiles/NightlyTest",
"output": "vendor/sol2/NightlyTest"
},
{
"directory": "/home/interfiber/dev/grbc/build",
"command": "",
"file": "vendor/sol2/CMakeFiles/NightlyCoverage",
"output": "vendor/sol2/NightlyCoverage"
},
{
"directory": "/home/interfiber/dev/grbc/build",
"command": "",
"file": "vendor/sol2/CMakeFiles/NightlyMemCheck",
"output": "vendor/sol2/NightlyMemCheck"
},
{
"directory": "/home/interfiber/dev/grbc/build",
"command": "",
"file": "vendor/sol2/CMakeFiles/NightlySubmit",
"output": "vendor/sol2/NightlySubmit"
},
{
"directory": "/home/interfiber/dev/grbc/build",
"command": "",
"file": "vendor/sol2/CMakeFiles/ExperimentalStart",
"output": "vendor/sol2/ExperimentalStart"
},
{
"directory": "/home/interfiber/dev/grbc/build",
"command": "",
"file": "vendor/sol2/CMakeFiles/ExperimentalUpdate",
"output": "vendor/sol2/ExperimentalUpdate"
},
{
"directory": "/home/interfiber/dev/grbc/build",
"command": "",
"file": "vendor/sol2/CMakeFiles/ExperimentalConfigure",
"output": "vendor/sol2/ExperimentalConfigure"
},
{
"directory": "/home/interfiber/dev/grbc/build",
"command": "",
"file": "vendor/sol2/CMakeFiles/ExperimentalBuild",
"output": "vendor/sol2/ExperimentalBuild"
},
{
"directory": "/home/interfiber/dev/grbc/build",
"command": "",
"file": "vendor/sol2/CMakeFiles/ExperimentalTest",
"output": "vendor/sol2/ExperimentalTest"
},
{
"directory": "/home/interfiber/dev/grbc/build",
"command": "",
"file": "vendor/sol2/CMakeFiles/ExperimentalCoverage",
"output": "vendor/sol2/ExperimentalCoverage"
},
{
"directory": "/home/interfiber/dev/grbc/build",
"command": "",
"file": "vendor/sol2/CMakeFiles/ExperimentalMemCheck",
"output": "vendor/sol2/ExperimentalMemCheck"
},
{
"directory": "/home/interfiber/dev/grbc/build",
"command": "",
"file": "vendor/sol2/CMakeFiles/ExperimentalSubmit",
"output": "vendor/sol2/ExperimentalSubmit"
},
{
"directory": "/home/interfiber/dev/grbc/build",
"command": "",
"file": "vendor/sol2/CMakeFiles/ContinuousStart",
"output": "vendor/sol2/ContinuousStart"
},
{
"directory": "/home/interfiber/dev/grbc/build",
"command": "",
"file": "vendor/sol2/CMakeFiles/ContinuousUpdate",
"output": "vendor/sol2/ContinuousUpdate"
},
{
"directory": "/home/interfiber/dev/grbc/build",
"command": "",
"file": "vendor/sol2/CMakeFiles/ContinuousConfigure",
"output": "vendor/sol2/ContinuousConfigure"
},
{
"directory": "/home/interfiber/dev/grbc/build",
"command": "",
"file": "vendor/sol2/CMakeFiles/ContinuousBuild",
"output": "vendor/sol2/ContinuousBuild"
},
{
"directory": "/home/interfiber/dev/grbc/build",
"command": "",
"file": "vendor/sol2/CMakeFiles/ContinuousTest",
"output": "vendor/sol2/ContinuousTest"
},
{
"directory": "/home/interfiber/dev/grbc/build",
"command": "",
"file": "vendor/sol2/CMakeFiles/ContinuousCoverage",
"output": "vendor/sol2/ContinuousCoverage"
},
{
"directory": "/home/interfiber/dev/grbc/build",
"command": "",
"file": "vendor/sol2/CMakeFiles/ContinuousMemCheck",
"output": "vendor/sol2/ContinuousMemCheck"
},
{
"directory": "/home/interfiber/dev/grbc/build",
"command": "",
"file": "vendor/sol2/CMakeFiles/ContinuousSubmit",
"output": "vendor/sol2/ContinuousSubmit"
},
{
"directory": "/home/interfiber/dev/grbc/build",
"command": "",
"file": "vendor/sol2/CMakeFiles/edit_cache.util",
"output": "vendor/sol2/edit_cache"
},
{
"directory": "/home/interfiber/dev/grbc/build",
"command": "",
"file": "vendor/sol2/CMakeFiles/rebuild_cache.util",
"output": "vendor/sol2/rebuild_cache"
},
{
"directory": "/home/interfiber/dev/grbc/build",
"command": "cd /home/interfiber/dev/grbc/build/vendor/sol2 && /usr/bin/cmake -P cmake_install.cmake",
"file": "vendor/sol2/all",
"output": "vendor/sol2/CMakeFiles/install.util"
},
{
"directory": "/home/interfiber/dev/grbc/build",
"command": "",
"file": "vendor/sol2/CMakeFiles/install.util",
"output": "vendor/sol2/install"
},
{
"directory": "/home/interfiber/dev/grbc/build",
"command": "cd /home/interfiber/dev/grbc/build/vendor/sol2 && /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake",
"file": "vendor/sol2/all",
"output": "vendor/sol2/CMakeFiles/install/local.util"
},
{
"directory": "/home/interfiber/dev/grbc/build",
"command": "",
"file": "vendor/sol2/CMakeFiles/install/local.util",
"output": "vendor/sol2/install/local"
},
{
"directory": "/home/interfiber/dev/grbc/build",
"command": "cd /home/interfiber/dev/grbc/build/vendor/sol2 && /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake",
"file": "vendor/sol2/all",
"output": "vendor/sol2/CMakeFiles/install/strip.util"
},
{
"directory": "/home/interfiber/dev/grbc/build",
"command": "",
"file": "vendor/sol2/CMakeFiles/install/strip.util",
"output": "vendor/sol2/install/strip"
},
{
"directory": "/home/interfiber/dev/grbc/build",
"command": "",
"file": "vendor/sol2/Continuous",
"output": "Continuous"
},
{
"directory": "/home/interfiber/dev/grbc/build",
"command": "",
"file": "vendor/sol2/ContinuousBuild",
"output": "ContinuousBuild"
},
{
"directory": "/home/interfiber/dev/grbc/build",
"command": "",
"file": "vendor/sol2/ContinuousConfigure",
"output": "ContinuousConfigure"
},
{
"directory": "/home/interfiber/dev/grbc/build",
"command": "",
"file": "vendor/sol2/ContinuousCoverage",
"output": "ContinuousCoverage"
},
{
"directory": "/home/interfiber/dev/grbc/build",
"command": "",
"file": "vendor/sol2/ContinuousMemCheck",
"output": "ContinuousMemCheck"
},
{
"directory": "/home/interfiber/dev/grbc/build",
"command": "",
"file": "vendor/sol2/ContinuousStart",
"output": "ContinuousStart"
},
{
"directory": "/home/interfiber/dev/grbc/build",
"command": "",
"file": "vendor/sol2/ContinuousSubmit",
"output": "ContinuousSubmit"
},
{
"directory": "/home/interfiber/dev/grbc/build",
"command": "",
"file": "vendor/sol2/ContinuousTest",
"output": "ContinuousTest"
},
{
"directory": "/home/interfiber/dev/grbc/build",
"command": "",
"file": "vendor/sol2/ContinuousUpdate",
"output": "ContinuousUpdate"
},
{
"directory": "/home/interfiber/dev/grbc/build",
"command": "",
"file": "vendor/sol2/Experimental",
"output": "Experimental"
},
{
"directory": "/home/interfiber/dev/grbc/build",
"command": "",
"file": "vendor/sol2/ExperimentalBuild",
"output": "ExperimentalBuild"
},
{
"directory": "/home/interfiber/dev/grbc/build",
"command": "",
"file": "vendor/sol2/ExperimentalConfigure",
"output": "ExperimentalConfigure"
},
{
"directory": "/home/interfiber/dev/grbc/build",
"command": "",
"file": "vendor/sol2/ExperimentalCoverage",
"output": "ExperimentalCoverage"
},
{
"directory": "/home/interfiber/dev/grbc/build",
"command": "",
"file": "vendor/sol2/ExperimentalMemCheck",
"output": "ExperimentalMemCheck"
},
{
"directory": "/home/interfiber/dev/grbc/build",
"command": "",
"file": "vendor/sol2/ExperimentalStart",
"output": "ExperimentalStart"
},
{
"directory": "/home/interfiber/dev/grbc/build",
"command": "",
"file": "vendor/sol2/ExperimentalSubmit",
"output": "ExperimentalSubmit"
},
{
"directory": "/home/interfiber/dev/grbc/build",
"command": "",
"file": "vendor/sol2/ExperimentalTest",
"output": "ExperimentalTest"
},
{
"directory": "/home/interfiber/dev/grbc/build",
"command": "",
"file": "vendor/sol2/ExperimentalUpdate",
"output": "ExperimentalUpdate"
},
{
"directory": "/home/interfiber/dev/grbc/build",
"command": "",
"file": "vendor/sol2/Nightly",
"output": "Nightly"
},
{
"directory": "/home/interfiber/dev/grbc/build",
"command": "",
"file": "vendor/sol2/NightlyBuild",
"output": "NightlyBuild"
},
{
"directory": "/home/interfiber/dev/grbc/build",
"command": "",
"file": "vendor/sol2/NightlyConfigure",
"output": "NightlyConfigure"
},
{
"directory": "/home/interfiber/dev/grbc/build",
"command": "",
"file": "vendor/sol2/NightlyCoverage",
"output": "NightlyCoverage"
},
{
"directory": "/home/interfiber/dev/grbc/build",
"command": "",
"file": "vendor/sol2/NightlyMemCheck",
"output": "NightlyMemCheck"
},
{
"directory": "/home/interfiber/dev/grbc/build",
"command": "",
"file": "vendor/sol2/NightlyMemoryCheck",
"output": "NightlyMemoryCheck"
},
{
"directory": "/home/interfiber/dev/grbc/build",
"command": "",
"file": "vendor/sol2/NightlyStart",
"output": "NightlyStart"
},
{
"directory": "/home/interfiber/dev/grbc/build",
"command": "",
"file": "vendor/sol2/NightlySubmit",
"output": "NightlySubmit"
},
{
"directory": "/home/interfiber/dev/grbc/build",
"command": "",
"file": "vendor/sol2/NightlyTest",
"output": "NightlyTest"
},
{
"directory": "/home/interfiber/dev/grbc/build",
"command": "",
"file": "vendor/sol2/NightlyUpdate",
"output": "NightlyUpdate"
},
{
"directory": "/home/interfiber/dev/grbc/build",
"command": "",
"file": "grbc",
"output": "all"
},
{
"directory": "/home/interfiber/dev/grbc/build",
"command": "/usr/bin/cmake -P /home/interfiber/dev/grbc/build/CMakeFiles/VerifyGlobs.cmake",
"file": "/home/interfiber/dev/grbc/build/CMakeFiles/VerifyGlobs.cmake_force",
"output": "/home/interfiber/dev/grbc/build/CMakeFiles/cmake.verify_globs"
},
{
"directory": "/home/interfiber/dev/grbc/build",
"command": "/usr/bin/cmake --regenerate-during-build -S/home/interfiber/dev/grbc -B/home/interfiber/dev/grbc/build",
"file": "/home/interfiber/dev/grbc/build/CMakeFiles/cmake.verify_globs",
"output": "build.ninja"
"directory": "/home/interfiber/dev/grbc",
"command": "/usr/lib64/ccache/g++ -o build/grbc build/src/main.o -llua -lm -ldl build/libgrbc.so -Lbuild -Wl,-rpath,build:. ",
"file": "build/src/main.o",
"output": "build/grbc"
}
]

View file

@ -1,8 +1,13 @@
#pragma once
#include "sol/state.hpp"
#include <string>
#define GRBC_EXT_pkg_config_NAME "GRBC_EXT_pkg_config"
typedef void (*EXT_HookInit)(sol::state &lua);
struct Extension {
std::string name;
EXT_HookInit hook_init = nullptr;
};

View file

@ -0,0 +1,7 @@
#pragma once
#include "grbc/ext.h"
/**
* Get the grbc pkg-config extension
*/
Extension grbc_pkg_config();

View file

@ -1,4 +1,5 @@
#pragma once
#include "grbc/ext.h"
#include <sol/table.hpp>
#include <sol/types.hpp>
#include <string>
@ -222,4 +223,8 @@ std::string grbc_get_lib_extension(LibraryType lib_type);
Package grbc_bake_package_config(const PackageConfig &config);
Package grbc_pkg(const std::string &package_name);
Package grbc_pkg(const std::string &package_name);
void grbc_ext(const std::string &extension_id);
void grbc_register_ext(const std::string &extension_id, const Extension &ext);

View file

@ -1 +1,5 @@
#include "grbc/ext.h"
#include "grbc/ext.h"
void grbc_register_ext(const std::string &extension_id, const Extension &ext) {}
void grbc_ext(const std::string &extension_id) {}

17
src/ext_pkg_config.cc Normal file
View file

@ -0,0 +1,17 @@
#include "grbc/ext_pkg_config.h"
#include "grbc/ext.h"
#include "grbc/helpers.h"
#include "sol/state.hpp"
void grbc_pkg_config_init(sol::state &state) {
log_msg("pkg_config extension loaded!");
}
Extension grbc_pkg_config() {
Extension ext{};
ext.name = GRBC_EXT_pkg_config_NAME;
ext.hook_init = grbc_pkg_config_init;
return ext;
}

View file

@ -1,3 +1,4 @@
#include "grbc/ext_pkg_config.h"
#include "grbc/state.h"
#define SOL_ALL_SAFETIES_ON 1
@ -99,12 +100,17 @@ int main() {
lua.set("grbc_get_lib_extension", grbc_get_lib_extension);
lua.set("grbc_bake_package_config", grbc_bake_package_config);
lua.set("grbc_pkg", grbc_pkg);
lua.set("grbc_ext", grbc_ext);
lua.set("grbc_register_ext", grbc_register_ext);
// Load generators
GState::get().generators.push_back(
{.name = "ninja", .func = ninja_generator});
// Load default extensions
grbc_register_ext(GRBC_EXT_pkg_config_NAME, grbc_pkg_config());
log_msg("loading HConfig...");
lua.script_file("HConfig");