Skip to content

Commit 6395aa8

Browse files
committed
Merge branch 'sb-graph-dev' into sb-graph-tearing
2 parents 7786c71 + aec11b1 commit 6395aa8

57 files changed

Lines changed: 3693 additions & 7167 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/c-cpp.yml

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,27 +8,38 @@ on:
88
jobs:
99
build:
1010

11-
runs-on: ubuntu-22.04
11+
runs-on: ubuntu-24.04
1212

1313
steps:
1414
- uses: actions/checkout@v2
1515
- name: Install deps.
1616
run: |
17-
sudo add-apt-repository ppa:mhier/libboost-latest
1817
sudo apt-get update
19-
sudo apt-get install autoconf
20-
sudo apt-get install libboost1.81-dev
18+
sudo apt-get install libboost1.83-dev
2119
sudo apt-get install cmake
2220
sudo apt-get install g++
2321
sudo apt-get install rapidjson-dev
2422
25-
- name: Build
23+
- name: Create build folder.
2624
working-directory: ./
2725
run: |
28-
autoconf
29-
./configure
30-
make compile MODE=Release
26+
mkdir -p build
27+
28+
- name: Configure
29+
working-directory: ./build
30+
run: |
31+
cmake ..
32+
33+
- name: Build
34+
working-directory: ./build
35+
run: |
36+
make
37+
38+
- name: Install
39+
working-directory: ./build
40+
run: |
41+
make install
3142
3243
- name: Tests
33-
working-directory: ./
44+
working-directory: ./build
3445
run: make test

.gitignore

Lines changed: 8 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,20 @@
1-
# Compiled objects.
2-
/obj
1+
# Install folder..
2+
/install
33

4-
# Generated library.
5-
/lib
4+
# Build folder.
5+
/build
66

7-
# Binary files
8-
/bin
9-
/test/performance/boost/bin
10-
/test/performance/boost/obj
7+
# Doc folder.
8+
/doc
119

1210
# 3rd-party libraries.
13-
/3rd-party/gtest/usr/
11+
/3rd-party/build/**
1412
/3rd-party/boost/*
1513

1614
# Test files.
1715
/test/parser/test_data/*
18-
/test/parser/obj/*
19-
/test/parser/bin/*
2016
/test/eval/test_data/*
21-
/test/eval/obj/*
22-
/test/eval/bin/*
23-
/test/performance/obj/*
24-
/test/performance/bin/*
25-
test/partitioner/bin/*
26-
27-
# Doc files.
28-
/doc/*
29-
/sbg/doc/*
30-
/sbg/util/doc/*
31-
32-
# Compile/Autoconf files.
33-
config.*
34-
configure
35-
Makefile
36-
/autom4te.cache
17+
/test/build/bin/
3718

3819
# Log files
3920
*.log

3rd-party/CMakeLists.txt

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
set(3RD_PARTY_DIR ${CMAKE_CURRENT_SOURCE_DIR})
2+
3+
set(GTEST_LIB "${CMAKE_CURRENT_SOURCE_DIR}/build/lib/libgtest.a")
4+
set(GTEST_DIR "googletest-release-1.12.1")
5+
set(GTEST_CODE ${GTEST_DIR}.tar.gz)
6+
7+
8+
add_custom_command(
9+
OUTPUT ${GTEST_LIB}
10+
COMMAND ${CMAKE_COMMAND} -E echo "Building gtest."
11+
COMMAND ${CMAKE_COMMAND} -E tar xvzf ${3RD_PARTY_DIR}/gtest/${GTEST_CODE}
12+
COMMAND mkdir -p ${CMAKE_CURRENT_BINARY_DIR}/${GTEST_DIR}/build
13+
COMMAND cd ${CMAKE_CURRENT_BINARY_DIR}/${GTEST_DIR}/build && cmake .. -DCMAKE_INSTALL_PREFIX=${3RD_PARTY_DIR}/build
14+
COMMAND make -C ${CMAKE_CURRENT_BINARY_DIR}/${GTEST_DIR}/build install
15+
)
16+
17+
add_custom_target(
18+
3rd-party-libs
19+
DEPENDS ${GTEST_LIB}
20+
COMMAND install ${3RD_PARTY_DIR}/build/lib/lib* ${CMAKE_INSTALL_PREFIX}/lib
21+
)
22+
23+
add_dependencies(sbgraph 3rd-party-libs)

CMakeLists.txt

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
cmake_minimum_required(VERSION 3.16)
2+
3+
project(SBG)
4+
5+
set(CMAKE_INSTALL_PREFIX ${PROJECT_SOURCE_DIR}/install)
6+
7+
# Set default build type to Release if not specified
8+
if(NOT CMAKE_BUILD_TYPE)
9+
set(CMAKE_BUILD_TYPE Release CACHE STRING "Build type" FORCE)
10+
endif()
11+
12+
# Set C++ standard
13+
set(CMAKE_CXX_STANDARD 17)
14+
set(CMAKE_CXX_STANDARD_REQUIRED ON)
15+
16+
# Build mode flags
17+
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
18+
add_compile_definitions(SBG_PARTITIONER_LOGGING)
19+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ggdb -Wall ") # -Werror
20+
else()
21+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-reorder")
22+
endif()
23+
24+
# Output directories
25+
set(BIN_DIR ${CMAKE_INSTALL_PREFIX}/bin)
26+
set(LIB_DIR ${CMAKE_INSTALL_PREFIX}/lib)
27+
28+
# Create output directories
29+
file(MAKE_DIRECTORY
30+
${BIN_DIR}
31+
${LIB_DIR}
32+
)
33+
34+
# Define install rules for library headers.
35+
function(install_lib_headers headers_dir)
36+
file(GLOB_RECURSE PROJECT_HEADERS
37+
"${headers_dir}/*.hpp"
38+
)
39+
40+
get_filename_component(CURRENT_DIR_BASENAME "${headers_dir}" NAME)
41+
42+
install(FILES
43+
${PROJECT_HEADERS}
44+
DESTINATION "include/${CURRENT_DIR_BASENAME}"
45+
)
46+
endfunction()
47+
48+
# sbgraph-library
49+
add_library(sbgraph STATIC)
50+
51+
# Add subdirectories
52+
add_subdirectory(3rd-party)
53+
add_subdirectory(algorithms)
54+
add_subdirectory(eval)
55+
add_subdirectory(parser)
56+
add_subdirectory(ast)
57+
add_subdirectory(sbg)
58+
add_subdirectory(test)
59+
add_subdirectory(util)
60+
61+
set_target_properties(sbgraph PROPERTIES DEBUG_POSTFIX "d")
62+
target_include_directories(sbgraph PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
63+
target_link_libraries(sbgraph sbg-dev)
64+
add_dependencies(sbgraph sbg-dev)
65+
66+
# install
67+
install(
68+
TARGETS sbgraph
69+
RUNTIME DESTINATION lib
70+
COMPONENT sbgraph
71+
LIBRARY
72+
DESTINATION lib
73+
PERMISSIONS
74+
OWNER_READ
75+
OWNER_WRITE
76+
OWNER_EXECUTE
77+
GROUP_READ
78+
GROUP_EXECUTE
79+
WORLD_READ
80+
WORLD_EXECUTE
81+
COMPONENT sbgraph
82+
)
83+
84+
add_custom_target(doc
85+
COMMAND echo "Generating Project documentation."
86+
)
87+
88+
add_dependencies(doc eval-doc sbg-doc util-doc)
89+
90+
set_target_properties(doc PROPERTIES EXCLUDE_FROM_ALL ON)

Makefile.in

Lines changed: 0 additions & 160 deletions
This file was deleted.

0 commit comments

Comments
 (0)