#!python # General utility functions def add_third_party_includes(env): env.Append(CPPPATH=['cpp/', 'cpp/vendor/spdlog/include']) def add_strict_compile_flags(env): env.Append(CCFLAGS=["-Wall", "-Wextra", "-Werror", "-pedantic"]) # Create the environment and create a Compilation Database for use in VSCodium env = Environment(tools=['default', 'compilation_db']) env.CompilationDatabase() env.Append(CPPPATH=['cpp/', 'include/']) add_third_party_includes(env) add_strict_compile_flags(env) # Build the library gedeng = env.SharedLibrary('lib/gedeng', Glob('cpp/*.cpp')) # Install the library to the test application's build directory env.Install('test/bin/lib/', gedeng) # ------------------------------------------------------------------------------- # Test environment setup testEnv = Environment(tools=['default']) testEnv.Append(CPPPATH=['include/', 'test/']) # Link to the Gedeng library testEnv.Append(LIBPATH=['lib/']) testEnv.Append(LIBS=['gedeng']) # Make the test executables search for the gedeng lib in their ./lib folder testEnv.Append(LINKFLAGS=[ '-Wl,--disable-new-dtags,-rpath,\'$$ORIGIN/lib/\'' ]) add_third_party_includes(testEnv) add_strict_compile_flags(testEnv) # Build the test programs catch_cpp = "test/catch_amalgamated.cpp" testEnv.Program('test/bin/vector-test.out', [catch_cpp, 'test/vector/vector-test.cpp']) testEnv.Program('test/bin/test-app.out', Glob('test/test-app/*.cpp'))