diff --git a/CMakeLists.txt b/CMakeLists.txt index 068023f..0fe7fb6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,6 +6,9 @@ project(Diffusion CXX) set(CMAKE_CXX_STANDARD 14) find_package(Eigen3 REQUIRED NO_MODULE) +find_package(OpenMP) + +option(USE_OPENMP "Compile with OpenMP support" ON) add_subdirectory(app) add_subdirectory(src) diff --git a/src/BTCSDiffusion.cpp b/src/BTCSDiffusion.cpp index 291c9d5..a09a5e0 100644 --- a/src/BTCSDiffusion.cpp +++ b/src/BTCSDiffusion.cpp @@ -14,11 +14,16 @@ #include #include #include -#include #include #include #include +#ifdef _OPENMP +#include +#else +#define omp_get_thread_num() 0 +#endif + #include constexpr int BTCS_MAX_DEP_PER_CELL = 3; diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index b12fd67..da8de73 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,5 +1,11 @@ find_package(OpenMP) add_library(diffusion OBJECT BTCSDiffusion.cpp BTCSDiffusion.hpp) -target_link_libraries(diffusion Eigen3::Eigen OpenMP::OpenMP_CXX) + +target_link_libraries(diffusion Eigen3::Eigen) + +if(USE_OPENMP AND OpenMP_CXX_FOUND) + target_link_libraries(diffusion OpenMP::OpenMP_CXX) +endif() + target_include_directories(diffusion PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})