diff --git a/projects/openmp.llvm.org/package.yml b/projects/openmp.llvm.org/package.yml new file mode 100644 index 00000000..83f5af2f --- /dev/null +++ b/projects/openmp.llvm.org/package.yml @@ -0,0 +1,54 @@ +distributable: + url: https://github.com/llvm/llvm-project/releases/download/llvmorg-{{version}}/openmp-{{version}}.src.tar.xz + strip-components: 1 + +display-name: libomp + +versions: + github: llvm/llvm-project + strip: /^llvmorg-/ + +dependencies: + linux: + python.org: ^3.11 + perl.org: '*' + +build: + dependencies: + tea.xyz/gx/cc: c99 + tea.xyz/gx/make: '*' + cmake.org: '*' + llvm.org: '*' + gnu.org/wget: '*' + script: | + mkdir -p src + find . -maxdepth 1 ! -name '.' ! -name 'src' -exec mv {} ./src/ \; + mkdir -p cmake + wget $CMAKE_URL && tar -xf cmake-{{version}}.src.tar.xz -C ./cmake --strip-components=1 + rm cmake-{{version}}.src.tar.xz + cmake -S src -B build/shared $ARGS + cmake --build build/shared + cmake --install build/shared + cmake -S src -B build/static -DLIBOMP_ENABLE_SHARED=OFF $ARGS + cmake --build build/static + cmake --install build/static + + env: + CMAKE_URL: 'https://github.com/llvm/llvm-project/releases/download/llvmorg-{{version}}/cmake-{{version}}.src.tar.xz' + ARGS: + - -DLIBOMP_INSTALL_ALIASES=OFF + - -DCMAKE_INSTALL_PREFIX={{prefix}} + - -DCMAKE_BUILD_TYPE=Release + - -DCMAKE_VERBOSE_MAKEFILE=ON + - -Wno-dev + - -DBUILD_TESTING=OFF + linux: + ARGS: + - -DOPENMP_ENABLE_LIBOMPTARGET=OFF + +test: + dependencies: + tea.xyz/gx/cc: c99 + script: + - g++ -Werror -Xpreprocessor -fopenmp test.cpp -std=c++11 -lomp -o test + - ./test \ No newline at end of file diff --git a/projects/openmp.llvm.org/test.cpp b/projects/openmp.llvm.org/test.cpp new file mode 100644 index 00000000..30310024 --- /dev/null +++ b/projects/openmp.llvm.org/test.cpp @@ -0,0 +1,14 @@ +#include +#include +int main (int argc, char** argv) { + std::array arr = {0,0}; + #pragma omp parallel num_threads(2) + { + size_t tid = omp_get_thread_num(); + arr.at(tid) = tid + 1; + } + if(arr.at(0) == 1 && arr.at(1) == 2) + return 0; + else + return 1; +} \ No newline at end of file