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

Build on Ubuntu 22 with GNU 11.2 #39

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 8 additions & 7 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ set(CMAKE_CXX_FLAGS "-std=c++14 -ansi -pedantic-errors -Wall -Wextra -pthread")
set(CMAKE_CXX_FLAGS_DEBUG "-g -O0")
set(CMAKE_CXX_FLAGS_RELEASE "-O3")

set(PROJECT_SOURCE_DIR ${CMAKE_SOURCE_DIR}/src)
set(PROJECT_SOURCE_DIR ${CMAKE_SOURCE_DIR}/parallel-packed-csr/src)

file(GLOB_RECURSE parallel-packed-csr_SOURCES "${PROJECT_SOURCE_DIR}/*.cpp")
file(GLOB_RECURSE parallel-packed-csr_HEADERS "${PROJECT_SOURCE_DIR}/*.h")
Expand All @@ -22,7 +22,7 @@ set(PROJECT_TEST_DIR ${CMAKE_SOURCE_DIR}/test)
file(GLOB_RECURSE parallel-packed-csr_TEST_SOURCES "${PROJECT_TEST_DIR}/*.cpp")
file(GLOB_RECURSE parallel-packed-csr_TEST_HEADERS "${PROJECT_TEST_DIR}/*.h")

include(${CMAKE_SOURCE_DIR}/cmake/modules/clang-format.cmake)
include(${CMAKE_SOURCE_DIR}/parallel-packed-csr/cmake/modules/clang-format.cmake)

set(parallel-packed-csr_INCLUDE_DIRS "")
foreach (_headerFile ${parallel-packed-csr_HEADERS})
Expand All @@ -31,14 +31,15 @@ foreach (_headerFile ${parallel-packed-csr_HEADERS})
endforeach ()
list(REMOVE_DUPLICATES parallel-packed-csr_INCLUDE_DIRS)

add_executable(parallel-packed-csr ${parallel-packed-csr_SOURCES})
target_include_directories(parallel-packed-csr PRIVATE ${parallel-packed-csr_INCLUDE_DIRS})

set(THREADS_PREFER_PTHREAD_FLAG ON)
find_package(Threads REQUIRED)
target_link_libraries(parallel-packed-csr PRIVATE Threads::Threads numa)

list(REMOVE_ITEM parallel-packed-csr_SOURCES ${PROJECT_SOURCE_DIR}/main.cpp)

add_library(parallel-packed-csr ${parallel-packed-csr_SOURCES})
target_include_directories(parallel-packed-csr PRIVATE ${parallel-packed-csr_INCLUDE_DIRS})
target_link_libraries(parallel-packed-csr PRIVATE Threads::Threads numa)

add_executable(tests ${parallel-packed-csr_SOURCES} ${parallel-packed-csr_TEST_SOURCES})
add_executable(tests-tsan ${parallel-packed-csr_SOURCES} ${parallel-packed-csr_TEST_SOURCES})
add_executable(tests-ubsan ${parallel-packed-csr_SOURCES} ${parallel-packed-csr_TEST_SOURCES})
Expand All @@ -51,7 +52,7 @@ if (GTEST_FOUND)
target_link_libraries(tests-tsan ${GTEST_LIBRARIES} pthread numa OpenMP::OpenMP_CXX)
target_link_libraries(tests-ubsan ${GTEST_LIBRARIES} pthread numa OpenMP::OpenMP_CXX)
else()
include(${CMAKE_SOURCE_DIR}/cmake/CPM.cmake)
include(${CMAKE_SOURCE_DIR}/parallel-packed-csr/cmake/CPM.cmake)
CPMAddPackage(
NAME googletest
GITHUB_REPOSITORY google/googletest
Expand Down
82 changes: 82 additions & 0 deletions CMakeLists_For_Isolated_EXE.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
cmake_minimum_required(VERSION 3.8 FATAL_ERROR)
set(CMAKE_VERBOSE_MAKEFILE ON)

project(parallel-packed-csr VERSION 0.1 LANGUAGES CXX)

if (NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE Release)
endif ()

set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_FLAGS "-std=c++14 -ansi -pedantic-errors -Wall -Wextra -pthread")
set(CMAKE_CXX_FLAGS_DEBUG "-g -O0")
set(CMAKE_CXX_FLAGS_RELEASE "-O3")

set(PROJECT_SOURCE_DIR ${CMAKE_SOURCE_DIR}/src)

file(GLOB_RECURSE parallel-packed-csr_SOURCES "${PROJECT_SOURCE_DIR}/*.cpp")
file(GLOB_RECURSE parallel-packed-csr_HEADERS "${PROJECT_SOURCE_DIR}/*.h")

set(PROJECT_TEST_DIR ${CMAKE_SOURCE_DIR}/test)

file(GLOB_RECURSE parallel-packed-csr_TEST_SOURCES "${PROJECT_TEST_DIR}/*.cpp")
file(GLOB_RECURSE parallel-packed-csr_TEST_HEADERS "${PROJECT_TEST_DIR}/*.h")

include(${CMAKE_SOURCE_DIR}/cmake/modules/clang-format.cmake)

set(parallel-packed-csr_INCLUDE_DIRS "")
foreach (_headerFile ${parallel-packed-csr_HEADERS})
get_filename_component(_dir ${_headerFile} PATH)
list(APPEND parallel-packed-csr_INCLUDE_DIRS ${_dir})
endforeach ()
list(REMOVE_DUPLICATES parallel-packed-csr_INCLUDE_DIRS)

add_executable(parallel-packed-csr ${parallel-packed-csr_SOURCES})
target_include_directories(parallel-packed-csr PRIVATE ${parallel-packed-csr_INCLUDE_DIRS})

set(THREADS_PREFER_PTHREAD_FLAG ON)
find_package(Threads REQUIRED)
target_link_libraries(parallel-packed-csr PRIVATE Threads::Threads numa)

list(REMOVE_ITEM parallel-packed-csr_SOURCES ${PROJECT_SOURCE_DIR}/main.cpp)
add_executable(tests ${parallel-packed-csr_SOURCES} ${parallel-packed-csr_TEST_SOURCES})
add_executable(tests-tsan ${parallel-packed-csr_SOURCES} ${parallel-packed-csr_TEST_SOURCES})
add_executable(tests-ubsan ${parallel-packed-csr_SOURCES} ${parallel-packed-csr_TEST_SOURCES})

find_package(GTest)
find_package(OpenMP REQUIRED)
if (GTEST_FOUND)
include_directories(${GTEST_INCLUDE_DIRS})
target_link_libraries(tests ${GTEST_LIBRARIES} pthread numa OpenMP::OpenMP_CXX)
target_link_libraries(tests-tsan ${GTEST_LIBRARIES} pthread numa OpenMP::OpenMP_CXX)
target_link_libraries(tests-ubsan ${GTEST_LIBRARIES} pthread numa OpenMP::OpenMP_CXX)
else()
include(${CMAKE_SOURCE_DIR}/cmake/CPM.cmake)
CPMAddPackage(
NAME googletest
GITHUB_REPOSITORY google/googletest
GIT_TAG release-1.8.1
VERSION 1.8.1
OPTIONS
"INSTALL_GTEST OFF"
"gtest_force_shared_crt ON"
)
target_link_libraries(tests gtest gtest_main gmock pthread numa OpenMP::OpenMP_CXX)
target_link_libraries(tests-tsan gtest gtest_main gmock pthread numa OpenMP::OpenMP_CXX)
target_link_libraries(tests-ubsan gtest gtest_main gmock pthread numa OpenMP::OpenMP_CXX)
endif()

target_include_directories(tests PRIVATE ${parallel-packed-csr_INCLUDE_DIRS} ${PROJECT_TEST_DIR})
target_include_directories(tests-tsan PRIVATE ${parallel-packed-csr_INCLUDE_DIRS} ${PROJECT_TEST_DIR})
target_include_directories(tests-ubsan PRIVATE ${parallel-packed-csr_INCLUDE_DIRS} ${PROJECT_TEST_DIR})

target_compile_options(tests-tsan PRIVATE -fsanitize=thread -g -O1)
target_link_options(tests-tsan PRIVATE -fsanitize=thread -g -O1)

target_compile_options(tests-ubsan PRIVATE -fsanitize=undefined -g -O1)
target_link_options(tests-ubsan PRIVATE -fsanitize=undefined -g -O1)

include (CTest)
gtest_discover_tests(tests)
gtest_discover_tests(tests-tsan TEST_SUFFIX -tsan)
gtest_discover_tests(tests-ubsan TEST_SUFFIX -ubsan)
4 changes: 4 additions & 0 deletions src/pcsr/PCSR.h
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,10 @@

#include "hybridLock.h"

// Build on Ubuntu 22 with GNU 11.2.0
#include <memory>
#include <condition_variable>

using namespace std;
#ifndef PCSR2_PCSR_H
#define PCSR2_PCSR_H
Expand Down