switch from waf to rscons

This commit is contained in:
Josh Holtrop 2019-12-02 20:54:06 -05:00
parent a0b2f660a2
commit ddb905351a
7 changed files with 66 additions and 254 deletions

4
.gitignore vendored
View File

@ -1,5 +1,5 @@
/.lock-waf*
/.waf*
/.rscons*
/build/
/test/tmp/
/coverage/
/jes

View File

@ -1,20 +1,7 @@
.PHONY: all
all:
./waf build --targets jes
./rscons build
.PHONY: clean
clean:
./waf clean
ifneq ($(FILTER),)
GTEST_FILTER := --gtest_filter=$(FILTER)
endif
.PHONY: build_tests
build_tests:
./waf build --targets tests
.PHONY: test
test: build_tests
./build/tests $(GTEST_FILTER)
@-rm -rf coverage
-gcovinator -b build -s src
./rscons clean

39
Rsconscript Normal file
View File

@ -0,0 +1,39 @@
project_name "jes"
configure do
check_c_compiler
check_cxx_compiler
check_d_compiler
check_c_header "getopt.h"
check_c_header "X11/Xlib.h"
check_cfg package: "freetype2"
check_lib "GL"
check_lib "dl"
check_lib "X11"
end
build do
Environment.new do |env|
env["CPPDEFINES"] += %w[
APPNAME="jes"
VERSION="0.0.1"
GLCXX_GL_INCLUDE="gl3w.h"
PLATFORM_LINUX
JTK_X
]
env["CPPPATH"] += glob("src/**", "libs/glcxx/include")
env["CCFLAGS"] += %w[
-Wall
-O2
-Wno-switch
]
env["CXXFLAGS"] += %w[
-std=gnu++14
]
sources = glob("src/**/*.{c,cc,cxx}", "libs/glcxx/src/glcxx/*")
env.Program("jes", sources)
env.InstallDirectory("${prefix}/bin")
env.Install("${prefix}/bin", "jes")
env.Install("${prefix}/share", "share")
end
end

2
configure vendored
View File

@ -5,4 +5,4 @@ if [ ! -e libs/glcxx/src ]; then
exit 1
fi
exec ./waf configure "$@"
exec "$(dirname "$0")"/rscons configure "$@"

21
rscons Executable file

File diff suppressed because one or more lines are too long

169
waf vendored

File diff suppressed because one or more lines are too long

66
wscript
View File

@ -1,66 +0,0 @@
import platform
import re
import os.path
APPNAME = "jes"
VERSION = "0.0.1"
def options(opt):
opt.load("compiler_c compiler_cxx")
def configure(conf):
conf.load("compiler_c compiler_cxx")
conf.check(header_name = "getopt.h", global_define = False)
conf.check_cfg(package = "freetype2", uselib_store = "FreeType2", args = "--cflags --libs")
if platform.system() == "Linux":
conf.check(header_name = "X11/Xlib.h", global_define = False)
conf.check(lib = 'GL', global_define = False)
elif platform.system() == "Windows":
conf.check(header_name = "windows.h", global_define = False)
conf.check(lib = 'opengl32', global_define = False)
def build(bld):
defines = ['APPNAME="%s"' % APPNAME]
defines += ['VERSION="%s"' % VERSION]
includes = [p for p in bld.path.ant_glob("src/**", dir = True) if os.path.isdir(p.abspath())]
includes += ["libs/glcxx/include"]
libs = []
if platform.system() == "Linux":
defines += ["PLATFORM_LINUX"]
defines += ["JTK_X"]
libs += ["dl", "GL", "X11"]
elif platform.system() == "Windows":
defines += ["PLATFORM_WINDOWS"]
defines += ["JTK_WINDOWS"]
libs += ["opengl32"]
defines += ['GLCXX_GL_INCLUDE="gl3w.h"']
sources = bld.path.ant_glob(["src/**/*.cc", "src/**/*.c", "libs/glcxx/src/glcxx/*"])
bld(features = "c cprogram cxx cxxprogram",
target = APPNAME,
source = sources,
includes = includes,
defines = defines,
cxxflags = ["-Wall", "-std=gnu++14", "-O2", "-Wno-switch"],
lib = libs,
uselib = ["FreeType2"])
test_libs = libs + []
if platform.system() == "Linux":
test_libs += ["pthread"]
elif platform.system() == "Windows":
pass
import sys
test_sources = bld.path.ant_glob(["src/*/**/*.cc", "src/*/**/*.c", "libs/glcxx/src/glcxx/*"])
test_sources += bld.path.ant_glob("test/src/**/*.cc")
test_sources += ["libs/googletest/src/gtest-all.cc"]
test_includes = includes + ["libs/googletest/include", "libs/googletest"]
test_defines = defines + ["ENABLE_TESTING"]
bld(features = "cxx cxxprogram",
target = "tests",
source = test_sources,
includes = test_includes,
defines = test_defines,
lib = test_libs,
cxxflags = ["-Wall", "-std=gnu++14", "--coverage", "-Wno-switch", "-include", "iostream"],
linkflags = ["--coverage"],
uselib = ["FreeType2"])