mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-08-13 19:07:57 +00:00
cmake - move all cgal related stuff to CGAL::CGAL target
This commit is contained in:
+2
-24
@@ -197,11 +197,7 @@ endforeach()
|
|||||||
|
|
||||||
if(WITH_CGAL)
|
if(WITH_CGAL)
|
||||||
find_package(CGAL REQUIRED)
|
find_package(CGAL REQUIRED)
|
||||||
if(TARGET CGAL::CGAL)
|
set(CGAL_LIBRARIES CGAL::CGAL)
|
||||||
link_libraries(CGAL::CGAL)
|
|
||||||
endif()
|
|
||||||
add_definitions(-DIFOPSH_WITH_CGAL)
|
|
||||||
set(SWIG_DEFINES ${SWIG_DEFINES} -DIFOPSH_WITH_CGAL)
|
|
||||||
list(APPEND GEOMETRY_KERNELS cgal)
|
list(APPEND GEOMETRY_KERNELS cgal)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
@@ -451,7 +447,7 @@ endif(MSVC)
|
|||||||
|
|
||||||
include_directories(${INCLUDE_DIRECTORIES} ${OPENCOLLADA_INCLUDE_DIRS}
|
include_directories(${INCLUDE_DIRECTORIES} ${OPENCOLLADA_INCLUDE_DIRS}
|
||||||
${Boost_INCLUDE_DIRS} ${LIBXML2_INCLUDE_DIR} ${JSON_INCLUDE_DIR} ${HDF5_INCLUDE_DIR}
|
${Boost_INCLUDE_DIRS} ${LIBXML2_INCLUDE_DIR} ${JSON_INCLUDE_DIR} ${HDF5_INCLUDE_DIR}
|
||||||
${CGAL_INCLUDE_DIR} ${GMP_INCLUDE_DIR} ${MPFR_INCLUDE_DIR} ${USD_INCLUDE_DIR}
|
${USD_INCLUDE_DIR}
|
||||||
${TBB_INCLUDE_DIR}
|
${TBB_INCLUDE_DIR}
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -544,24 +540,6 @@ add_subdirectory(../src/ifcparse ifcparse)
|
|||||||
set(IFCOPENSHELL_LIBRARIES IfcParse)
|
set(IFCOPENSHELL_LIBRARIES IfcParse)
|
||||||
|
|
||||||
if(BUILD_IFCGEOM)
|
if(BUILD_IFCGEOM)
|
||||||
# CGAL::CGAL target already has dependencies resolved.
|
|
||||||
if(WITH_CGAL AND CGAL_DIR)
|
|
||||||
set(CGAL_LIBRARIES CGAL::CGAL)
|
|
||||||
message(STATUS "Using found CGAL package at '${CGAL_DIR}'")
|
|
||||||
elseif(WITH_CGAL AND NOT CGAL_DIR)
|
|
||||||
find_library(libGMP NAMES gmp mpir PATHS ${GMP_LIBRARY_DIR} NO_DEFAULT_PATH)
|
|
||||||
find_library(libMPFR NAMES mpfr PATHS ${MPFR_LIBRARY_DIR} NO_DEFAULT_PATH)
|
|
||||||
if(NOT libGMP)
|
|
||||||
message(FATAL_ERROR "Unable to find GMP library files, aborting")
|
|
||||||
endif()
|
|
||||||
if(NOT libMPFR)
|
|
||||||
message(FATAL_ERROR "Unable to find MPFR library files, aborting")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
list(APPEND CGAL_LIBRARIES "${libMPFR}")
|
|
||||||
list(APPEND CGAL_LIBRARIES "${libGMP}")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
add_subdirectory(../src/ifcgeom ifcgeom)
|
add_subdirectory(../src/ifcgeom ifcgeom)
|
||||||
endif(BUILD_IFCGEOM)
|
endif(BUILD_IFCGEOM)
|
||||||
|
|
||||||
|
|||||||
+24
-6
@@ -9,10 +9,14 @@
|
|||||||
# If input variables are not specified, try to find HDF5 config.
|
# If input variables are not specified, try to find HDF5 config.
|
||||||
# Input variables could also be provided as environment variables.
|
# Input variables could also be provided as environment variables.
|
||||||
#
|
#
|
||||||
# Output variables:
|
# Output targets:
|
||||||
# - `CGAL_INCLUDE_DIR`
|
# - `CGAL::CGAL`
|
||||||
#
|
#
|
||||||
|
|
||||||
|
if(TARGET CGAL::CGAL)
|
||||||
|
return()
|
||||||
|
endif()
|
||||||
|
|
||||||
UNIFY_ENVVARS_AND_CACHE(CGAL_INCLUDE_DIR)
|
UNIFY_ENVVARS_AND_CACHE(CGAL_INCLUDE_DIR)
|
||||||
UNIFY_ENVVARS_AND_CACHE(CGAL_LIBRARY_DIR)
|
UNIFY_ENVVARS_AND_CACHE(CGAL_LIBRARY_DIR)
|
||||||
UNIFY_ENVVARS_AND_CACHE(GMP_INCLUDE_DIR)
|
UNIFY_ENVVARS_AND_CACHE(GMP_INCLUDE_DIR)
|
||||||
@@ -20,7 +24,21 @@ UNIFY_ENVVARS_AND_CACHE(GMP_LIBRARY_DIR)
|
|||||||
UNIFY_ENVVARS_AND_CACHE(MPFR_INCLUDE_DIR)
|
UNIFY_ENVVARS_AND_CACHE(MPFR_INCLUDE_DIR)
|
||||||
UNIFY_ENVVARS_AND_CACHE(MPFR_LIBRARY_DIR)
|
UNIFY_ENVVARS_AND_CACHE(MPFR_LIBRARY_DIR)
|
||||||
|
|
||||||
if(NOT CGAL_INCLUDE_DIR)
|
if(CGAL_INCLUDE_DIR)
|
||||||
|
find_library(libGMP NAMES gmp mpir PATHS ${GMP_LIBRARY_DIR} NO_DEFAULT_PATH)
|
||||||
|
find_library(libMPFR NAMES mpfr PATHS ${MPFR_LIBRARY_DIR} NO_DEFAULT_PATH)
|
||||||
|
if(NOT libGMP)
|
||||||
|
message(FATAL_ERROR "Unable to find GMP library files, aborting")
|
||||||
|
endif()
|
||||||
|
if(NOT libMPFR)
|
||||||
|
message(FATAL_ERROR "Unable to find MPFR library files, aborting")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
add_library(CGAL::CGAL INTERFACE IMPORTED)
|
||||||
|
target_include_directories(CGAL::CGAL INTERFACE "${CGAL_INCLUDE_DIR}")
|
||||||
|
target_include_directories(CGAL::CGAL INTERFACE "${GMP_INCLUDE_DIR}" "${MPFR_INCLUDE_DIR}")
|
||||||
|
target_link_libraries(CGAL::CGAL INTERFACE "${libMPFR}" "${libGMP}")
|
||||||
|
else()
|
||||||
# CGAL is not respecting default Boost_USE_STATIC_LIBS value
|
# CGAL is not respecting default Boost_USE_STATIC_LIBS value
|
||||||
# and sometiems it's getting in the way.
|
# and sometiems it's getting in the way.
|
||||||
if(NOT DEFINED Boost_USE_STATIC_LIBS)
|
if(NOT DEFINED Boost_USE_STATIC_LIBS)
|
||||||
@@ -28,8 +46,8 @@ if(NOT CGAL_INCLUDE_DIR)
|
|||||||
else()
|
else()
|
||||||
set(CGAL_Boost_USE_STATIC_LIBS "${Boost_USE_STATIC_LIBS}")
|
set(CGAL_Boost_USE_STATIC_LIBS "${Boost_USE_STATIC_LIBS}")
|
||||||
endif()
|
endif()
|
||||||
find_package(CGAL CONFIG REQUIRED)
|
find_package(CGAL CONFIG)
|
||||||
if(NOT CGAL_DIR)
|
if(NOT CGAL::CGAL)
|
||||||
message(
|
message(
|
||||||
FATAL_ERROR
|
FATAL_ERROR
|
||||||
"CGAL_SUPPORT enabled, but CGAL_INCLUDE_DIR wasn't provided and CGAL package couldn't be found."
|
"CGAL_SUPPORT enabled, but CGAL_INCLUDE_DIR wasn't provided and CGAL package couldn't be found."
|
||||||
@@ -38,5 +56,5 @@ if(NOT CGAL_INCLUDE_DIR)
|
|||||||
message(STATUS "CGAL: found config at '${CGAL_DIR}'.")
|
message(STATUS "CGAL: found config at '${CGAL_DIR}'.")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_definitions(-DIFOPSH_WITH_CGAL)
|
target_compile_definitions(CGAL::CGAL INTERFACE IFOPSH_WITH_CGAL)
|
||||||
set(SWIG_DEFINES ${SWIG_DEFINES} -DIFOPSH_WITH_CGAL)
|
set(SWIG_DEFINES ${SWIG_DEFINES} -DIFOPSH_WITH_CGAL)
|
||||||
|
|||||||
@@ -9,6 +9,11 @@ endif()
|
|||||||
set(IFCCONVERT_FILES ${IFCCONVERT_CPP_FILES} ${IFCCONVERT_H_FILES})
|
set(IFCCONVERT_FILES ${IFCCONVERT_CPP_FILES} ${IFCCONVERT_H_FILES})
|
||||||
add_executable(IfcConvert ${IFCCONVERT_FILES})
|
add_executable(IfcConvert ${IFCCONVERT_FILES})
|
||||||
|
|
||||||
target_link_libraries(IfcConvert IfcGeom IfcParse Serializers ${OpenCASCADE_LIBRARIES} ${Boost_LIBRARIES} ${HDF5_LIBRARIES} ${USD_LIBRARIES})
|
target_link_libraries(IfcConvert
|
||||||
|
PRIVATE
|
||||||
|
IfcGeom IfcParse Serializers
|
||||||
|
${OpenCASCADE_LIBRARIES} ${Boost_LIBRARIES} ${HDF5_LIBRARIES} ${USD_LIBRARIES}
|
||||||
|
${CGAL_LIBRARIES}
|
||||||
|
)
|
||||||
|
|
||||||
install(TARGETS IfcConvert)
|
install(TARGETS IfcConvert)
|
||||||
|
|||||||
@@ -22,11 +22,15 @@ endif()
|
|||||||
|
|
||||||
find_package(Eigen3 REQUIRED)
|
find_package(Eigen3 REQUIRED)
|
||||||
|
|
||||||
if(WASM_BUILD)
|
target_link_libraries(IfcGeom
|
||||||
target_link_libraries(IfcGeom ${kernel_libraries} ${mapping_libraries} ${CMAKE_THREAD_LIBS_INIT} "Eigen3::Eigen")
|
${kernel_libraries} ${mapping_libraries}
|
||||||
else()
|
${CMAKE_THREAD_LIBS_INIT} "Eigen3::Eigen"
|
||||||
target_link_libraries(IfcGeom IfcParse ${kernel_libraries} ${mapping_libraries} ${CMAKE_THREAD_LIBS_INIT} "Eigen3::Eigen")
|
${CGAL_LIBRARIES}
|
||||||
|
)
|
||||||
|
if(NOT WASM_BUILD)
|
||||||
|
target_link_libraries(IfcGeom IfcParse)
|
||||||
endif()
|
endif()
|
||||||
|
target_link_libraries(IfcGeom )
|
||||||
|
|
||||||
install(FILES ${SCHEMA_AGNOSTIC_H_FILES}
|
install(FILES ${SCHEMA_AGNOSTIC_H_FILES}
|
||||||
DESTINATION ${INCLUDEDIR}/ifcgeom
|
DESTINATION ${INCLUDEDIR}/ifcgeom
|
||||||
|
|||||||
@@ -16,13 +16,16 @@ foreach(kernel ${GEOMETRY_KERNELS})
|
|||||||
install(TARGETS ${KERNEL_TARGET})
|
install(TARGETS ${KERNEL_TARGET})
|
||||||
|
|
||||||
if(${kernel} STREQUAL "cgal")
|
if(${kernel} STREQUAL "cgal")
|
||||||
|
find_package(CGAL REQUIRED)
|
||||||
|
target_link_libraries(${KERNEL_TARGET} CGAL::CGAL)
|
||||||
set_property(TARGET ${KERNEL_TARGET} APPEND_STRING PROPERTY COMPILE_FLAGS " -DCGAL_HAS_THREADS")
|
set_property(TARGET ${KERNEL_TARGET} APPEND_STRING PROPERTY COMPILE_FLAGS " -DCGAL_HAS_THREADS")
|
||||||
|
|
||||||
set(KERNEL_TARGET_SIMPLE "${KERNEL_TARGET}_simple")
|
set(KERNEL_TARGET_SIMPLE "${KERNEL_TARGET}_simple")
|
||||||
add_library(${KERNEL_TARGET_SIMPLE} OBJECT ${IFCGEOM_FILES})
|
add_library(${KERNEL_TARGET_SIMPLE} OBJECT ${IFCGEOM_FILES})
|
||||||
set_target_properties(${KERNEL_TARGET_SIMPLE} PROPERTIES COMPILE_FLAGS "-DIFC_GEOM_EXPORTS -DIFOPSH_SIMPLE_KERNEL -DCGAL_HAS_THREADS")
|
set_target_properties(${KERNEL_TARGET_SIMPLE} PROPERTIES COMPILE_FLAGS "-DIFC_GEOM_EXPORTS -DIFOPSH_SIMPLE_KERNEL -DCGAL_HAS_THREADS")
|
||||||
list(APPEND kernel_libraries ${KERNEL_TARGET_SIMPLE})
|
list(APPEND kernel_libraries ${KERNEL_TARGET_SIMPLE})
|
||||||
target_link_libraries(${KERNEL_TARGET_SIMPLE} ${${KERNEL_UPPER}_LIBRARIES} Eigen3::Eigen)
|
target_link_libraries(${KERNEL_TARGET_SIMPLE} ${${KERNEL_UPPER}_LIBRARIES} Eigen3::Eigen)
|
||||||
|
target_link_libraries(${KERNEL_TARGET_SIMPLE} CGAL::CGAL)
|
||||||
install(TARGETS ${KERNEL_TARGET_SIMPLE})
|
install(TARGETS ${KERNEL_TARGET_SIMPLE})
|
||||||
elseif(${kernel} STREQUAL "opencascade")
|
elseif(${kernel} STREQUAL "opencascade")
|
||||||
target_link_libraries(${KERNEL_TARGET} ${OpenCASCADE_LIBRARIES})
|
target_link_libraries(${KERNEL_TARGET} ${OpenCASCADE_LIBRARIES})
|
||||||
|
|||||||
@@ -119,6 +119,11 @@ else()
|
|||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(WITH_CGAL)
|
||||||
|
find_package(CGAL REQUIRED)
|
||||||
|
target_link_libraries(ifcopenshell_wrapper PRIVATE CGAL::CGAL)
|
||||||
|
endif()
|
||||||
|
|
||||||
target_link_libraries(ifcopenshell_wrapper PRIVATE Python::Module)
|
target_link_libraries(ifcopenshell_wrapper PRIVATE Python::Module)
|
||||||
SET_PROPERTY(TARGET ifcopenshell_wrapper PROPERTY SWIG_DEPENDS ${IFCOPENSHELL_LIBRARIES})
|
SET_PROPERTY(TARGET ifcopenshell_wrapper PROPERTY SWIG_DEPENDS ${IFCOPENSHELL_LIBRARIES})
|
||||||
if (WASM_BUILD)
|
if (WASM_BUILD)
|
||||||
@@ -147,6 +152,7 @@ target_link_libraries(ifcopenshell_wrapper PRIVATE ${IFCOPENSHELL_LIBRARIES} ${O
|
|||||||
else()
|
else()
|
||||||
target_link_libraries(ifcopenshell_wrapper PRIVATE ${IFCOPENSHELL_LIBRARIES} ${LIBSVGFILL})
|
target_link_libraries(ifcopenshell_wrapper PRIVATE ${IFCOPENSHELL_LIBRARIES} ${LIBSVGFILL})
|
||||||
endif()
|
endif()
|
||||||
|
target_link_libraries(ifcopenshell_wrapper PRIVATE ${CGAL_LIBRARIES})
|
||||||
if ((NOT WIN32) AND BUILD_SHARED_LIBS)
|
if ((NOT WIN32) AND BUILD_SHARED_LIBS)
|
||||||
SET_INSTALL_RPATHS(ifcopenshell_wrapper "${IFCDIRS};${OCC_LIBRARY_DIR}")
|
SET_INSTALL_RPATHS(ifcopenshell_wrapper "${IFCDIRS};${OCC_LIBRARY_DIR}")
|
||||||
endif()
|
endif()
|
||||||
|
|||||||
@@ -23,65 +23,6 @@ if(NOT IS_ABSOLUTE ${INCLUDEDIR})
|
|||||||
endif()
|
endif()
|
||||||
message(STATUS "INCLUDEDIR: ${INCLUDEDIR}")
|
message(STATUS "INCLUDEDIR: ${INCLUDEDIR}")
|
||||||
|
|
||||||
set(CGAL_LIBRARY_NAMES libCGAL_Core libCGAL_ImageIO libCGAL)
|
|
||||||
|
|
||||||
if(NOT CGAL_INCLUDE_DIR)
|
|
||||||
find_package(CGAL REQUIRED)
|
|
||||||
if(NOT CGAL_DIR)
|
|
||||||
message(
|
|
||||||
FATAL_ERROR
|
|
||||||
"CGAL_SUPPORT enabled, but CGAL_INCLUDE_DIR wasn't provided and CGAL package couldn't be found."
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
message(STATUS "CGAL: found config at '${CGAL_DIR}'.")
|
|
||||||
set(CGAL_LIBRARIES CGAL::CGAL)
|
|
||||||
else()
|
|
||||||
set(CGAL_INCLUDE_DIR ${CGAL_INCLUDE_DIR} CACHE FILEPATH "CGAL header files")
|
|
||||||
message(STATUS "Looking for CGAL include files in: ${CGAL_INCLUDE_DIR}")
|
|
||||||
|
|
||||||
if(NOT "${CGAL_LIBRARY_DIR}" STREQUAL "")
|
|
||||||
set(CGAL_LIBRARY_DIR ${CGAL_LIBRARY_DIR} CACHE FILEPATH "CGAL library files")
|
|
||||||
message(STATUS "Looking for CGAL library files in: ${CGAL_LIBRARY_DIR}")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(WASM_BUILD)
|
|
||||||
set(CMAKE_FIND_ROOT_PATH_BACKUP "${CMAKE_FIND_ROOT_PATH}")
|
|
||||||
set(CMAKE_FIND_ROOT_PATH "")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
find_library(libCGAL NAMES CGAL PATHS ${CGAL_LIBRARY_DIR} NO_DEFAULT_PATH)
|
|
||||||
|
|
||||||
if(libCGAL)
|
|
||||||
message(STATUS "CGAL library files found")
|
|
||||||
foreach(lib ${CGAL_LIBRARY_NAMES})
|
|
||||||
string(REPLACE libCGAL "${lib}" lib_path "${libCGAL}")
|
|
||||||
list(APPEND CGAL_LIBRARIES "${lib_path}")
|
|
||||||
endforeach()
|
|
||||||
else()
|
|
||||||
if(NOT "${CGAL_LIBRARY_DIR}" STREQUAL "")
|
|
||||||
file(GLOB CGAL_LIBRARIES ${CGAL_LIBRARY_DIR}/CGAL*.lib)
|
|
||||||
list(LENGTH CGAL_LIBRARY_NAMES num_cgal_library_names)
|
|
||||||
list(LENGTH CGAL_LIBRARIES num_cgal_libraries)
|
|
||||||
link_directories("${CGAL_LIBRARY_DIR}")
|
|
||||||
if(NOT "${num_cgal_library_names}" STREQUAL "${num_cgal_libraries}")
|
|
||||||
message(FATAL_ERROR "Unable to find CGAL library files, aborting")
|
|
||||||
endif()
|
|
||||||
message(STATUS "CGAL library files found")
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
find_library(libGMP NAMES gmp mpir PATHS ${GMP_LIBRARY_DIR} NO_DEFAULT_PATH)
|
|
||||||
find_library(libMPFR NAMES mpfr PATHS ${MPFR_LIBRARY_DIR} NO_DEFAULT_PATH)
|
|
||||||
if(NOT libGMP)
|
|
||||||
message(FATAL_ERROR "Unable to find GMP library files, aborting")
|
|
||||||
endif()
|
|
||||||
if(NOT libMPFR)
|
|
||||||
message(FATAL_ERROR "Unable to find MPFR library files, aborting")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
list(APPEND CGAL_LIBRARIES "${libMPFR}")
|
|
||||||
list(APPEND CGAL_LIBRARIES "${libGMP}")
|
|
||||||
endif(NOT CGAL_INCLUDE_DIR)
|
|
||||||
|
|
||||||
if(WIN32 AND ("$ENV{CONDA_BUILD}" STREQUAL ""))
|
if(WIN32 AND ("$ENV{CONDA_BUILD}" STREQUAL ""))
|
||||||
set(Boost_USE_STATIC_LIBS ON)
|
set(Boost_USE_STATIC_LIBS ON)
|
||||||
set(Boost_USE_MULTITHREADED ON)
|
set(Boost_USE_MULTITHREADED ON)
|
||||||
@@ -106,22 +47,18 @@ endif()
|
|||||||
find_package(Boost)
|
find_package(Boost)
|
||||||
message(STATUS "Boost include files found in ${Boost_INCLUDE_DIRS}")
|
message(STATUS "Boost include files found in ${Boost_INCLUDE_DIRS}")
|
||||||
find_package(LibXml2 REQUIRED)
|
find_package(LibXml2 REQUIRED)
|
||||||
|
find_package(CGAL REQUIRED)
|
||||||
if(WASM_BUILD)
|
|
||||||
set(CMAKE_FIND_ROOT_PATH "${CMAKE_FIND_ROOT_PATH_BACKUP}")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
include_directories(${Boost_INCLUDE_DIRS}
|
include_directories(${Boost_INCLUDE_DIRS}
|
||||||
${CGAL_INCLUDE_DIR} ${GMP_INCLUDE_DIR} ${MPFR_INCLUDE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/svgpp/include
|
${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/svgpp/include
|
||||||
)
|
)
|
||||||
|
|
||||||
file(GLOB LIB_H_FILES src/*.h)
|
file(GLOB LIB_H_FILES src/*.h)
|
||||||
file(GLOB LIB_CPP_FILES src/svgfill.cpp src/arrange_polygons.cpp)
|
file(GLOB LIB_CPP_FILES src/svgfill.cpp src/arrange_polygons.cpp)
|
||||||
set(LIB_SRC_FILES ${LIB_H_FILES} ${LIB_CPP_FILES})
|
set(LIB_SRC_FILES ${LIB_H_FILES} ${LIB_CPP_FILES})
|
||||||
add_library(svgfill ${LIB_SRC_FILES})
|
add_library(svgfill ${LIB_SRC_FILES})
|
||||||
target_link_libraries(svgfill ${Boost_LIBRARIES} ${BCRYPT_LIBRARIES} LibXml2::LibXml2 ${CGAL_LIBRARIES})
|
target_link_libraries(svgfill ${Boost_LIBRARIES} ${BCRYPT_LIBRARIES} LibXml2::LibXml2 CGAL::CGAL)
|
||||||
|
|
||||||
add_executable(svgfill_exe src/main.cpp)
|
add_executable(svgfill_exe src/main.cpp)
|
||||||
target_link_libraries(svgfill_exe svgfill)
|
target_link_libraries(svgfill_exe svgfill)
|
||||||
|
|||||||
Reference in New Issue
Block a user