mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-10-04 14:20:58 +00:00
Co-authored-by: Rodrigo Faselli <162915171+RF47@users.noreply.github.com>
64 lines
2.1 KiB
CMake
64 lines
2.1 KiB
CMake
cmake_minimum_required(VERSION 3.10)
|
|
project(Clipper2 VERSION 2.0.1 LANGUAGES C CXX)
|
|
|
|
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
|
set(CMAKE_CXX_STANDARD 17)
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
set(CMAKE_CXX_EXTENSIONS OFF)
|
|
set_property(GLOBAL PROPERTY USE_FOLDERS OFF)
|
|
|
|
option(BUILD_SHARED_LIBS "Build shared libs" OFF)
|
|
|
|
include(GNUInstallDirs)
|
|
|
|
set(CLIPPER2_INC
|
|
Clipper2Lib/include/clipper2/clipper.h
|
|
Clipper2Lib/include/clipper2/clipper.core.h
|
|
Clipper2Lib/include/clipper2/clipper.engine.h
|
|
Clipper2Lib/include/clipper2/clipper.export.h
|
|
Clipper2Lib/include/clipper2/clipper.minkowski.h
|
|
Clipper2Lib/include/clipper2/clipper.offset.h
|
|
Clipper2Lib/include/clipper2/clipper.rectclip.h
|
|
Clipper2Lib/include/clipper2/clipper.triangulation.h
|
|
Clipper2Lib/include/clipper2/clipper2_z.hpp
|
|
)
|
|
|
|
set(CLIPPER2_SRC
|
|
Clipper2Lib/src/clipper.engine.cpp
|
|
Clipper2Lib/src/clipper.offset.cpp
|
|
Clipper2Lib/src/clipper.rectclip.cpp
|
|
Clipper2Lib/src/clipper.triangulation.cpp
|
|
Clipper2Lib/src/clipper2_z.cpp
|
|
)
|
|
|
|
# 2d version of Clipper2
|
|
add_library(Clipper2 ${CLIPPER2_INC} ${CLIPPER2_SRC})
|
|
|
|
target_include_directories(Clipper2
|
|
PUBLIC Clipper2Lib/include
|
|
)
|
|
|
|
# Engine nodes are allocated through tbbmalloc (see clipper.engine.cpp).
|
|
target_link_libraries(Clipper2 PRIVATE TBB::tbbmalloc)
|
|
|
|
if (WIN32)
|
|
if (MSVC AND NOT CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
|
|
target_compile_options(Clipper2 PRIVATE /W4 /WX)
|
|
elseif (CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND CMAKE_CXX_COMPILER_FRONTEND_VARIANT STREQUAL "MSVC")
|
|
target_compile_options(Clipper2 PRIVATE /W4)
|
|
endif()
|
|
else()
|
|
target_compile_options(Clipper2 PRIVATE -Wall -Wextra -Wpedantic -Werror)
|
|
target_link_libraries(Clipper2 PUBLIC -lm)
|
|
if (CMAKE_COMPILER_IS_GNUCC AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 14.1)
|
|
target_compile_options(Clipper2 PRIVATE -Wno-error=template-id-cdtor)
|
|
endif()
|
|
endif()
|
|
|
|
set_target_properties(Clipper2 PROPERTIES FOLDER Libraries
|
|
VERSION ${PROJECT_VERSION}
|
|
SOVERSION ${PROJECT_VERSION_MAJOR}
|
|
PUBLIC_HEADER "${CLIPPER2_INC}"
|
|
)
|
|
|