From d033a15877405dceebe64943b064f07ee23f6427 Mon Sep 17 00:00:00 2001 From: Andrew <51118083+ArionThinker@users.noreply.github.com> Date: Sat, 21 Oct 2023 00:21:31 +0300 Subject: [PATCH] cgal.org (#3746) * new file: projects/cgal.org/package.yml new file: projects/cgal.org/surprise.cpp * -DCMAKE_BUILD_RPATH= * fixture & ldflags * case sensitive linux --------- Co-authored-by: Jacob Heider --- projects/cgal.org/package.yml | 62 ++++++++++++++++++++++++++++++++++ projects/cgal.org/surprise.cpp | 34 +++++++++++++++++++ 2 files changed, 96 insertions(+) create mode 100644 projects/cgal.org/package.yml create mode 100644 projects/cgal.org/surprise.cpp diff --git a/projects/cgal.org/package.yml b/projects/cgal.org/package.yml new file mode 100644 index 00000000..3caec272 --- /dev/null +++ b/projects/cgal.org/package.yml @@ -0,0 +1,62 @@ +distributable: + url: https://github.com/CGAL/cgal/releases/download/v{{version.marketing}}/CGAL-{{version.marketing}}.tar.xz + strip-components: 1 +versions: + github: CGAL/cgal +dependencies: + boost.org: '*' + eigen.tuxfamily.org: '*' + gnu.org/gmp: '*' + gnu.org/mpfr: '*' + openssl.org: '*' +build: + dependencies: + cmake.org: '*' + qt.io: ~5 + linux: + gnu.org/gcc: '*' + gnu.org/make: '*' + script: + - cmake . $CMAKE_ARGS + - make install + env: + CMAKE_ARGS: + - -DCMAKE_INSTALL_PREFIX="{{prefix}} + - -DCMAKE_INSTALL_LIBDIR=lib + - -DCMAKE_BUILD_TYPE=Release + - -DCMAKE_FIND_FRAMEWORK=LAST + - -DCMAKE_VERBOSE_MAKEFILE=ON + - -Wno-dev + - -DBUILD_TESTING=OFF + - -DCMAKE_CXX_FLAGS='-std=c++14' + - -DWITH_CGAL_Qt5=ON +provides: + - bin/cgal_create_CMakeLists + - bin/cgal_create_cmake_script + - bin/cgal_make_macosx_app +test: + dependencies: + cmake.org: '*' + qt.io: ~5 + linux: + gnu.org/gcc: '*' + gnu.org/make: '*' + script: + - mv $FIXTURE CMakeLists.txt + - cmake -L $ARGS . + - cmake --build . -v + - ./surprise | grep 15 + fixture: | + cmake_minimum_required(VERSION 3.1...3.15) + find_package(CGAL COMPONENTS Qt5) + add_definitions(-DCGAL_USE_BASIC_VIEWER -DQT_NO_KEYWORDS) + include_directories(surprise BEFORE SYSTEM {{deps.qt.io.prefix}}/include) + add_executable(surprise surprise.cpp) + target_include_directories(surprise BEFORE PUBLIC {{deps.qt.io.prefix}}/include}) + target_link_libraries(surprise PUBLIC CGAL::CGAL_Qt5) + env: + ARGS: + - -DQt5_DIR={{deps.qt.io.prefix}}/cmake/Qt5 + - -DCMAKE_PREFIX_PATH={{prefix}} + darwin: + LDFLAGS: -Wl,-rpath,{{pkgx.prefix}} diff --git a/projects/cgal.org/surprise.cpp b/projects/cgal.org/surprise.cpp new file mode 100644 index 00000000..699d7622 --- /dev/null +++ b/projects/cgal.org/surprise.cpp @@ -0,0 +1,34 @@ +#include +#include +#include +#include +#include +#include +#include +typedef CGAL::Exact_predicates_inexact_constructions_kernel K; +typedef CGAL::Triangulation_2 Triangulation; +typedef Triangulation::Point Point; + +template +typename CGAL::Coercion_traits::Type +binary_func(const A &a, const B &b) +{ + typedef CGAL::Coercion_traits CT; + CGAL_static_assertion((CT::Are_explicit_interoperable::value)); + typename CT::Cast cast; + return cast(a) * cast(b); +} + +int main(int argc, char **) +{ + std::cout << binary_func(double(3), int(5)) << std::endl; + std::cout << binary_func(int(3), double(5)) << std::endl; + std::ifstream in("data/triangulation_prog1.cin"); + std::istream_iterator begin(in); + std::istream_iterator end; + Triangulation t; + t.insert(begin, end); + if (argc == 3) // do not test Qt5 at runtime + CGAL::draw(t); + return EXIT_SUCCESS; +} \ No newline at end of file