mirror of
https://github.com/mcneel/opennurbs.git
synced 2026-03-04 14:09:41 +08:00
629 lines
18 KiB
CMake
629 lines
18 KiB
CMake
cmake_minimum_required (VERSION 3.16)
|
|
#set(CMAKE_OSX_ARCHITECTURES "$(ARCHS_STANDARD)")
|
|
project(opennurbs CXX)
|
|
|
|
# specify the C++ standard
|
|
set(CMAKE_CXX_STANDARD 17)
|
|
set(CMAKE_CXX_STANDARD_REQUIRED True)
|
|
|
|
if (UNIX AND NOT APPLE)
|
|
set(LINUX TRUE)
|
|
endif()
|
|
|
|
set( OPENNURBS_PUBLIC_HEADERS
|
|
opennurbs.h
|
|
opennurbs_3dm.h
|
|
opennurbs_3dm_attributes.h
|
|
opennurbs_3dm_properties.h
|
|
opennurbs_3dm_settings.h
|
|
opennurbs_annotationbase.h
|
|
opennurbs_apple_nsfont.h
|
|
opennurbs_arc.h
|
|
opennurbs_arccurve.h
|
|
opennurbs_archivable_dictionary.h
|
|
opennurbs_archive.h
|
|
opennurbs_array.h
|
|
opennurbs_array_defs.h
|
|
opennurbs_base32.h
|
|
opennurbs_base64.h
|
|
opennurbs_beam.h
|
|
opennurbs_bezier.h
|
|
opennurbs_bitmap.h
|
|
opennurbs_bounding_box.h
|
|
opennurbs_box.h
|
|
opennurbs_brep.h
|
|
opennurbs_circle.h
|
|
opennurbs_color.h
|
|
opennurbs_compress.h
|
|
opennurbs_compstat.h
|
|
opennurbs_cone.h
|
|
opennurbs_convex_poly.h
|
|
opennurbs_crc.h
|
|
opennurbs_curve.h
|
|
opennurbs_curveonsurface.h
|
|
opennurbs_curveproxy.h
|
|
opennurbs_cylinder.h
|
|
opennurbs_date.h
|
|
opennurbs_decals.h
|
|
opennurbs_defines.h
|
|
opennurbs_detail.h
|
|
opennurbs_dimension.h
|
|
opennurbs_dimensionformat.h
|
|
opennurbs_dimensionstyle.h
|
|
opennurbs_dithering.h
|
|
opennurbs_ellipse.h
|
|
opennurbs_embedded_file.h
|
|
opennurbs_error.h
|
|
opennurbs_evaluate_nurbs.h
|
|
opennurbs_extensions.h
|
|
opennurbs_file_utilities.h
|
|
opennurbs_font.h
|
|
opennurbs_fpoint.h
|
|
opennurbs_freetype.h
|
|
opennurbs_freetype_include.h
|
|
opennurbs_fsp.h
|
|
opennurbs_fsp_defs.h
|
|
opennurbs_function_list.h
|
|
opennurbs_geometry.h
|
|
opennurbs_gl.h
|
|
opennurbs_ground_plane.h
|
|
opennurbs_group.h
|
|
opennurbs_hash_table.h
|
|
opennurbs_hatch.h
|
|
opennurbs_hsort_template.h
|
|
opennurbs_instance.h
|
|
opennurbs_internal_V2_annotation.h
|
|
opennurbs_internal_V5_annotation.h
|
|
opennurbs_internal_V5_dimstyle.h
|
|
opennurbs_internal_defines.h
|
|
opennurbs_internal_glyph.h
|
|
opennurbs_intersect.h
|
|
opennurbs_ipoint.h
|
|
opennurbs_knot.h
|
|
opennurbs_layer.h
|
|
opennurbs_leader.h
|
|
opennurbs_light.h
|
|
opennurbs_line.h
|
|
opennurbs_linear_workflow.h
|
|
opennurbs_linecurve.h
|
|
opennurbs_linestyle.h
|
|
opennurbs_linetype.h
|
|
opennurbs_locale.h
|
|
opennurbs_lock.h
|
|
opennurbs_lookup.h
|
|
opennurbs_mapchan.h
|
|
opennurbs_material.h
|
|
opennurbs_math.h
|
|
opennurbs_matrix.h
|
|
opennurbs_md5.h
|
|
opennurbs_memory.h
|
|
opennurbs_mesh.h
|
|
opennurbs_mesh_modifiers.h
|
|
opennurbs_model_component.h
|
|
opennurbs_model_geometry.h
|
|
opennurbs_nurbscurve.h
|
|
opennurbs_nurbssurface.h
|
|
opennurbs_object.h
|
|
opennurbs_object_history.h
|
|
opennurbs_objref.h
|
|
opennurbs_offsetsurface.h
|
|
opennurbs_optimize.h
|
|
opennurbs_parse.h
|
|
opennurbs_photogrammetry.h
|
|
opennurbs_plane.h
|
|
opennurbs_planesurface.h
|
|
opennurbs_pluginlist.h
|
|
opennurbs_point.h
|
|
opennurbs_pointcloud.h
|
|
opennurbs_pointgeometry.h
|
|
opennurbs_pointgrid.h
|
|
opennurbs_polycurve.h
|
|
opennurbs_polyedgecurve.h
|
|
opennurbs_polyline.h
|
|
opennurbs_polylinecurve.h
|
|
opennurbs_post_effects.h
|
|
opennurbs_private_wrap.h
|
|
opennurbs_private_wrap_defs.h
|
|
opennurbs_progress_reporter.h
|
|
opennurbs_qsort_template.h
|
|
opennurbs_quacksort_template.h
|
|
opennurbs_quaternion.h
|
|
opennurbs_rand.h
|
|
opennurbs_render_channels.h
|
|
opennurbs_render_content.h
|
|
opennurbs_rendering.h
|
|
opennurbs_revsurface.h
|
|
opennurbs_rtree.h
|
|
opennurbs_safe_frame.h
|
|
opennurbs_sectionstyle.h
|
|
opennurbs_sha1.h
|
|
opennurbs_skylight.h
|
|
opennurbs_sleeplock.h
|
|
opennurbs_sphere.h
|
|
opennurbs_std_string.h
|
|
opennurbs_string.h
|
|
opennurbs_string_value.h
|
|
opennurbs_subd.h
|
|
opennurbs_subd_data.h
|
|
opennurbs_sumsurface.h
|
|
opennurbs_sun.h
|
|
opennurbs_surface.h
|
|
opennurbs_surfaceproxy.h
|
|
opennurbs_symmetry.h
|
|
opennurbs_system.h
|
|
opennurbs_system_compiler.h
|
|
opennurbs_system_runtime.h
|
|
#opennurbs_table.h
|
|
opennurbs_terminator.h
|
|
opennurbs_testclass.h
|
|
opennurbs_text.h
|
|
opennurbs_text_style.h
|
|
opennurbs_textcontext.h
|
|
opennurbs_textdraw.h
|
|
opennurbs_textglyph.h
|
|
opennurbs_textiterator.h
|
|
opennurbs_textlog.h
|
|
opennurbs_textobject.h
|
|
opennurbs_textrun.h
|
|
opennurbs_texture.h
|
|
opennurbs_texture_mapping.h
|
|
opennurbs_topology.h
|
|
opennurbs_torus.h
|
|
opennurbs_unicode.h
|
|
opennurbs_userdata.h
|
|
opennurbs_uuid.h
|
|
opennurbs_version.h
|
|
opennurbs_version_number.h
|
|
opennurbs_viewport.h
|
|
opennurbs_wip.h
|
|
opennurbs_workspace.h
|
|
opennurbs_xform.h
|
|
opennurbs_xml.h
|
|
opennurbs_zlib.h
|
|
)
|
|
|
|
set( OPENNURBS_PUBLIC_SOURCES
|
|
opennurbs_3dm_attributes.cpp
|
|
opennurbs_3dm_properties.cpp
|
|
opennurbs_3dm_settings.cpp
|
|
opennurbs_annotationbase.cpp
|
|
opennurbs_apple_nsfont.cpp
|
|
opennurbs_arc.cpp
|
|
opennurbs_arccurve.cpp
|
|
opennurbs_archivable_dictionary.cpp
|
|
opennurbs_archive.cpp
|
|
opennurbs_archive_manifest.cpp
|
|
opennurbs_array.cpp
|
|
opennurbs_base32.cpp
|
|
opennurbs_base64.cpp
|
|
opennurbs_beam.cpp
|
|
opennurbs_bezier.cpp
|
|
opennurbs_beziervolume.cpp
|
|
opennurbs_bitmap.cpp
|
|
opennurbs_bounding_box.cpp
|
|
opennurbs_box.cpp
|
|
opennurbs_brep.cpp
|
|
opennurbs_brep_extrude.cpp
|
|
opennurbs_brep_io.cpp
|
|
opennurbs_brep_isvalid.cpp
|
|
opennurbs_brep_region.cpp
|
|
opennurbs_brep_tools.cpp
|
|
opennurbs_brep_v2valid.cpp
|
|
opennurbs_calculator.cpp
|
|
opennurbs_circle.cpp
|
|
opennurbs_color.cpp
|
|
opennurbs_compress.cpp
|
|
opennurbs_compstat.cpp
|
|
opennurbs_cone.cpp
|
|
opennurbs_convex_poly.cpp
|
|
opennurbs_crc.cpp
|
|
opennurbs_curve.cpp
|
|
opennurbs_curveonsurface.cpp
|
|
opennurbs_curveproxy.cpp
|
|
opennurbs_cylinder.cpp
|
|
opennurbs_date.cpp
|
|
opennurbs_decals.cpp
|
|
opennurbs_defines.cpp
|
|
opennurbs_detail.cpp
|
|
opennurbs_dimension.cpp
|
|
opennurbs_dimensionformat.cpp
|
|
opennurbs_dimensionstyle.cpp
|
|
opennurbs_dithering.cpp
|
|
opennurbs_ellipse.cpp
|
|
opennurbs_embedded_file.cpp
|
|
opennurbs_error.cpp
|
|
opennurbs_error_message.cpp
|
|
opennurbs_evaluate_nurbs.cpp
|
|
opennurbs_extensions.cpp
|
|
opennurbs_file_utilities.cpp
|
|
opennurbs_font.cpp
|
|
opennurbs_freetype.cpp
|
|
opennurbs_fsp.cpp
|
|
opennurbs_function_list.cpp
|
|
opennurbs_geometry.cpp
|
|
opennurbs_glyph_outline.cpp
|
|
opennurbs_ground_plane.cpp
|
|
opennurbs_group.cpp
|
|
opennurbs_hash_table.cpp
|
|
opennurbs_hatch.cpp
|
|
opennurbs_instance.cpp
|
|
opennurbs_internal_V2_annotation.cpp
|
|
opennurbs_internal_V5_annotation.cpp
|
|
opennurbs_internal_V5_dimstyle.cpp
|
|
opennurbs_internal_Vx_annotation.cpp
|
|
opennurbs_intersect.cpp
|
|
opennurbs_ipoint.cpp
|
|
opennurbs_knot.cpp
|
|
opennurbs_layer.cpp
|
|
opennurbs_leader.cpp
|
|
opennurbs_light.cpp
|
|
opennurbs_line.cpp
|
|
opennurbs_linear_workflow.cpp
|
|
opennurbs_linecurve.cpp
|
|
opennurbs_linetype.cpp
|
|
opennurbs_locale.cpp
|
|
opennurbs_lock.cpp
|
|
opennurbs_lookup.cpp
|
|
opennurbs_material.cpp
|
|
opennurbs_math.cpp
|
|
opennurbs_matrix.cpp
|
|
opennurbs_md5.cpp
|
|
opennurbs_memory_util.cpp
|
|
opennurbs_mesh.cpp
|
|
opennurbs_mesh_modifiers.cpp
|
|
opennurbs_mesh_ngon.cpp
|
|
opennurbs_mesh_tools.cpp
|
|
opennurbs_mesh_topology.cpp
|
|
opennurbs_model_component.cpp
|
|
opennurbs_model_geometry.cpp
|
|
opennurbs_morph.cpp
|
|
opennurbs_nurbscurve.cpp
|
|
opennurbs_nurbssurface.cpp
|
|
opennurbs_nurbsvolume.cpp
|
|
opennurbs_object.cpp
|
|
opennurbs_object_history.cpp
|
|
opennurbs_objref.cpp
|
|
opennurbs_offsetsurface.cpp
|
|
opennurbs_optimize.cpp
|
|
opennurbs_parse_angle.cpp
|
|
opennurbs_parse_length.cpp
|
|
opennurbs_parse_number.cpp
|
|
opennurbs_parse_point.cpp
|
|
opennurbs_parse_settings.cpp
|
|
opennurbs_photogrammetry.cpp
|
|
opennurbs_plane.cpp
|
|
opennurbs_planesurface.cpp
|
|
opennurbs_pluginlist.cpp
|
|
opennurbs_point.cpp
|
|
opennurbs_pointcloud.cpp
|
|
opennurbs_pointgeometry.cpp
|
|
opennurbs_pointgrid.cpp
|
|
opennurbs_polycurve.cpp
|
|
opennurbs_polyedgecurve.cpp
|
|
opennurbs_polyline.cpp
|
|
opennurbs_polylinecurve.cpp
|
|
opennurbs_post_effects.cpp
|
|
opennurbs_progress_reporter.cpp
|
|
opennurbs_quaternion.cpp
|
|
opennurbs_rand.cpp
|
|
opennurbs_render_channels.cpp
|
|
opennurbs_render_content.cpp
|
|
opennurbs_revsurface.cpp
|
|
opennurbs_rtree.cpp
|
|
opennurbs_safe_frame.cpp
|
|
opennurbs_sectionstyle.cpp
|
|
opennurbs_sha1.cpp
|
|
opennurbs_skylight.cpp
|
|
opennurbs_sleeplock.cpp
|
|
opennurbs_sort.cpp
|
|
opennurbs_sphere.cpp
|
|
opennurbs_statics.cpp
|
|
opennurbs_std_string_format.cpp
|
|
opennurbs_std_string_utf.cpp
|
|
opennurbs_string.cpp
|
|
opennurbs_string_compare.cpp
|
|
opennurbs_string_format.cpp
|
|
opennurbs_string_scan.cpp
|
|
opennurbs_string_values.cpp
|
|
opennurbs_subd.cpp
|
|
opennurbs_subd_archive.cpp
|
|
opennurbs_subd_copy.cpp
|
|
opennurbs_subd_data.cpp
|
|
opennurbs_subd_eval.cpp
|
|
opennurbs_subd_fragment.cpp
|
|
opennurbs_subd_frommesh.cpp
|
|
opennurbs_subd_heap.cpp
|
|
opennurbs_subd_iter.cpp
|
|
opennurbs_subd_limit.cpp
|
|
opennurbs_subd_matrix.cpp
|
|
opennurbs_subd_mesh.cpp
|
|
opennurbs_subd_ref.cpp
|
|
opennurbs_subd_ring.cpp
|
|
opennurbs_subd_sector.cpp
|
|
opennurbs_subd_texture.cpp
|
|
opennurbs_sum.cpp
|
|
opennurbs_sumsurface.cpp
|
|
opennurbs_sun.cpp
|
|
opennurbs_surface.cpp
|
|
opennurbs_surfaceproxy.cpp
|
|
opennurbs_symmetry.cpp
|
|
#opennurbs_table.cpp
|
|
opennurbs_terminator.cpp
|
|
opennurbs_testclass.cpp
|
|
opennurbs_text.cpp
|
|
opennurbs_text_style.cpp
|
|
opennurbs_textcontext.cpp
|
|
opennurbs_textdraw.cpp
|
|
opennurbs_textglyph.cpp
|
|
opennurbs_textiterator.cpp
|
|
opennurbs_textlog.cpp
|
|
opennurbs_textobject.cpp
|
|
opennurbs_textrun.cpp
|
|
opennurbs_topology.cpp
|
|
opennurbs_torus.cpp
|
|
opennurbs_unicode.cpp
|
|
opennurbs_unicode_cpsb.cpp
|
|
opennurbs_units.cpp
|
|
opennurbs_userdata.cpp
|
|
opennurbs_uuid.cpp
|
|
opennurbs_version.cpp
|
|
opennurbs_version_number.cpp
|
|
opennurbs_viewport.cpp
|
|
opennurbs_win_dwrite.cpp
|
|
opennurbs_workspace.cpp
|
|
opennurbs_wstring.cpp
|
|
opennurbs_xform.cpp
|
|
opennurbs_xml.cpp
|
|
opennurbs_zlib.cpp
|
|
opennurbs_zlib_memory.cpp
|
|
)
|
|
|
|
if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/opennurbs_plus.h)
|
|
set( OPENNURBS_PLUS_HEADERS
|
|
opennurbsRhino.pch
|
|
opennurbs_plus.h
|
|
opennurbs_plus_crashtest.h
|
|
opennurbs_plus_function.h
|
|
opennurbs_plus_hiddenline.h
|
|
opennurbs_plus_hiddenline_impl.h
|
|
opennurbs_plus_idimage.h
|
|
opennurbs_plus_implicitfn.h
|
|
opennurbs_plus_massprop.h
|
|
opennurbs_plus_mesh_intersection.h
|
|
opennurbs_plus_mesh_marker.h
|
|
opennurbs_plus_meshbooleans_impl.h
|
|
opennurbs_plus_particle.h
|
|
opennurbs_plus_rectpack.h
|
|
opennurbs_plus_rectpack2.h
|
|
opennurbs_plus_registry.h
|
|
opennurbs_plus_sections.h
|
|
opennurbs_plus_sil.h
|
|
opennurbs_plus_sleeplock.h
|
|
opennurbs_plus_squish.h
|
|
opennurbs_plus_subd.h
|
|
opennurbs_plus_trimesh.h
|
|
opennurbs_plus_validate.h
|
|
opennurbs_plus_x.h
|
|
)
|
|
|
|
if (BUILD_TESTING)
|
|
LIST(APPEND OPENNURBS_PLUS_HEADERS opennurbs_plus_testheader.h)
|
|
endif(BUILD_TESTING)
|
|
|
|
set( OPENNURBS_PLUS_SOURCES
|
|
opennurbs_plus_bezier.cpp
|
|
opennurbs_plus_brep.cpp
|
|
opennurbs_plus_brep_changesrf.cpp
|
|
opennurbs_plus_brep_facegroups.cpp
|
|
opennurbs_plus_brep_kinky.cpp
|
|
opennurbs_plus_ctree.cpp
|
|
opennurbs_plus_fontsub.cpp
|
|
opennurbs_plus_fpu.cpp
|
|
opennurbs_plus_function.cpp
|
|
opennurbs_plus_ginfinity.cpp
|
|
opennurbs_plus_hiddenline.cpp
|
|
opennurbs_plus_idimage.cpp
|
|
opennurbs_plus_implicitfn.cpp
|
|
opennurbs_plus_massprop.cpp
|
|
opennurbs_plus_memory.cpp
|
|
opennurbs_plus_memory_new.cpp
|
|
opennurbs_plus_mesh_clash.cpp
|
|
opennurbs_plus_mesh_intersection.cpp
|
|
opennurbs_plus_mesh_marker.cpp
|
|
opennurbs_plus_mesh_thickness.cpp
|
|
opennurbs_plus_meshbooleans.cpp
|
|
opennurbs_plus_mtree.cpp
|
|
opennurbs_plus_particle.cpp
|
|
opennurbs_plus_rectpack.cpp
|
|
opennurbs_plus_rectpack1.cpp
|
|
opennurbs_plus_rectpack2.cpp
|
|
opennurbs_plus_registry.cpp
|
|
opennurbs_plus_sections.cpp
|
|
opennurbs_plus_sil.cpp
|
|
opennurbs_plus_sleeplock.cpp
|
|
opennurbs_plus_squish.cpp
|
|
opennurbs_plus_stree.cpp
|
|
opennurbs_plus_subd.cpp
|
|
opennurbs_plus_subd_curve.cpp
|
|
opennurbs_plus_subd_eval.cpp
|
|
opennurbs_plus_subd_facegroups.cpp
|
|
opennurbs_plus_subd_fillet.cpp
|
|
opennurbs_plus_subd_limit.cpp
|
|
opennurbs_plus_subd_loft.cpp
|
|
opennurbs_plus_subd_matrix.cpp
|
|
opennurbs_plus_subd_merge.cpp
|
|
opennurbs_plus_subd_mesh.cpp
|
|
opennurbs_plus_subd_symmetry.cpp
|
|
opennurbs_plus_subd_topology.cpp
|
|
opennurbs_plus_subd_weld.cpp
|
|
opennurbs_plus_trimesh.cpp
|
|
opennurbs_plus_validate.cpp
|
|
opennurbs_plus_x.cpp
|
|
opennurbs_plus_xmesh.cpp
|
|
opennurbs_plus_xmeshfast.cpp
|
|
opennurbs_plus_xray.cpp
|
|
)
|
|
else()
|
|
set( OPENNURBS_PUBLIC_MEMORY
|
|
opennurbs_public_memory.cpp
|
|
)
|
|
endif() #OpenNURBS plus source files
|
|
|
|
if (ANDROID OR LINUX)
|
|
add_subdirectory(android_uuid)
|
|
add_subdirectory(freetype263)
|
|
endif()
|
|
|
|
add_subdirectory(zlib)
|
|
|
|
## opennurbs static library
|
|
add_library( opennurbsStatic STATIC
|
|
${OPENNURBS_PUBLIC_HEADERS}
|
|
${OPENNURBS_PUBLIC_SOURCES}
|
|
${OPENNURBS_PUBLIC_MEMORY}
|
|
${OPENNURBS_PLUS_HEADERS}
|
|
${OPENNURBS_PLUS_SOURCES}
|
|
)
|
|
|
|
## opennurbs shared library
|
|
add_library( OpenNURBS SHARED
|
|
${OPENNURBS_PUBLIC_HEADERS}
|
|
${OPENNURBS_PUBLIC_SOURCES}
|
|
${OPENNURBS_PUBLIC_MEMORY}
|
|
${OPENNURBS_PLUS_HEADERS}
|
|
${OPENNURBS_PLUS_SOURCES}
|
|
opennurbs_dll.cpp
|
|
)
|
|
|
|
if (MSVC)
|
|
# opennurbs_brep.cpp requires this flag when compiling with Visual C++
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /bigobj")
|
|
#add_compile_options(\bigobj)
|
|
add_definitions(-DUNICODE)
|
|
add_definitions(-D_UNICODE)
|
|
endif()
|
|
|
|
add_definitions(-DON_CMAKE_BUILD)
|
|
|
|
if (ANDROID)
|
|
include_directories("freetype263/include")
|
|
endif()
|
|
|
|
if( APPLE)
|
|
find_library( CORE_GRAPHICS_LIBRARY CoreGraphics)
|
|
message( STATUS "CORE_GRAPHICS_LIBRARY is ${CORE_GRAPHICS_LIBRARY}")
|
|
find_library( CORE_TEXT_LIBRARY CoreText)
|
|
message( STATUS "CORE_TEXT_LIBRARY is ${CORE_TEXT_LIBRARY}")
|
|
find_library( FOUNDATION_LIBRARY Foundation)
|
|
message( STATUS "FOUNDATION_LIBRARY is ${FOUNDATION_LIBRARY}")
|
|
|
|
set( OPENNURBS_APPLE_DEPENDENCIES
|
|
${CORE_GRAPHICS_LIBRARY}
|
|
${CORE_TEXT_LIBRARY}
|
|
${FOUNDATION_LIBRARY}
|
|
)
|
|
|
|
set( OPENNURBS_APPLE_DEFINES
|
|
ON_COMPILER_CLANG
|
|
ON_RUNTIME_APPLE
|
|
RHINO_APPLE=1
|
|
_GNU_SOURCE
|
|
)
|
|
target_compile_definitions(opennurbsStatic PRIVATE ${OPENNURBS_APPLE_DEFINES})
|
|
target_compile_definitions(OpenNURBS PRIVATE ${OPENNURBS_APPLE_DEFINES})
|
|
|
|
# xcode properties are the same for both static and shared libs
|
|
set_target_properties( opennurbsStatic OpenNURBS
|
|
PROPERTIES
|
|
XCODE_ATTRIBUTE_SDKROOT "macosx"
|
|
XCODE_ATTRIBUTE_SUPPORTED_PLATFORMS "macosx iphonesimulator iphoneos"
|
|
XCODE_ATTRIBUTE_SYMROOT "build"
|
|
XCODE_ATTRIBUTE_ALLOW_TARGET_PLATFORM_SPECIALIZATION "YES"
|
|
XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT "dwarf"
|
|
XCODE_ATTRIBUTE_MACOSX_DEPLOYMENT_TARGET "11.3"
|
|
XCODE_ATTRIBUTE_DYLIB_COMPATIBILITY_VERSION "1"
|
|
XCODE_ATTRIBUTE_DYLIB_CURRENT_VERSION "1"
|
|
XCODE_ATTRIBUTE_INFOPLIST_FILE "opennurbsRhinoInfo.plist"
|
|
XCODE_ATTRIBUTE_PRODUCT_BUNDLE_IDENTIFIER "com.mcneel.opennurbs"
|
|
XCODE_ATTRIBUTE_HEADER_SEARCH_PATHS "$(PROJECT_DIR)/freetype263/include"
|
|
XCODE_ATTRIBUTE_CURRENT_PROJECT_VERSION "1"
|
|
XCODE_ATTRIBUTE_MARKETING_VERSION "8 Internal"
|
|
XCODE_ATTRIBUTE_GCC_INLINES_ARE_PRIVATE_EXTERN "YES"
|
|
XCODE_ATTRIBUTE_GCC_NO_COMMON_BLOCKS "YES"
|
|
XCODE_ATTRIBUTE_GCC_INPUT_FILETYPE "sourcecode.cpp.objcpp"
|
|
XCODE_ATTRIBUTE_GCC_PRECOMPILE_PREFIX_HEADER "YES"
|
|
XCODE_ATTRIBUTE_GCC_PREFIX_HEADER "$(PROJECT_DIR)/opennurbsRhino.pch"
|
|
XCODE_ATTRIBUTE_CLANG_ENABLE_OBJC_ARC "YES"
|
|
XCODE_ATTRIBUTE_ENABLE_STRICT_OBJC_MSGSEND "YES"
|
|
)
|
|
endif()
|
|
|
|
|
|
if (MSVC)
|
|
# warning level 4 and all warnings as errors
|
|
add_compile_options(/W4)
|
|
else()
|
|
# These need to be addressed
|
|
add_compile_options(-Wno-inconsistent-missing-override)
|
|
add_compile_options(-Wno-defaulted-function-deleted)
|
|
add_compile_options(-Wno-switch)
|
|
add_compile_options(-Wno-tautological-pointer-compare)
|
|
add_compile_options(-Wno-deprecated-declarations)
|
|
add_compile_options(-Wno-unsequenced)
|
|
add_compile_options(-Wno-parentheses)
|
|
add_compile_options(-Wno-writable-strings)
|
|
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-switch")
|
|
endif()
|
|
|
|
|
|
target_compile_definitions(opennurbsStatic PRIVATE ON_COMPILING_OPENNURBS Z_PREFIX MY_ZCALLOC)
|
|
target_compile_definitions(OpenNURBS PRIVATE OPENNURBS_EXPORTS Z_PREFIX MY_ZCALLOC)
|
|
|
|
target_include_directories(opennurbsStatic PUBLIC .)
|
|
target_include_directories(OpenNURBS PUBLIC .)
|
|
|
|
set(PRECOMPILED_HEADERS opennurbs.h)
|
|
if (BUILD_TESTING)
|
|
LIST(APPEND PRECOMPILED_HEADERS opennurbs_plus_testheader.h)
|
|
endif(BUILD_TESTING)
|
|
|
|
target_precompile_headers(opennurbsStatic PRIVATE ${PRECOMPILED_HEADERS})
|
|
target_precompile_headers(OpenNURBS PRIVATE ${PRECOMPILED_HEADERS})
|
|
|
|
install( TARGETS opennurbsStatic DESTINATION "lib")
|
|
install( FILES ${OPENNURBS_PUBLIC_HEADERS} DESTINATION "include/opennurbsStatic")
|
|
|
|
|
|
if (ANDROID)
|
|
target_link_libraries( OpenNURBS zlib opennurbs_public_freetype android_uuid android)
|
|
target_link_libraries( opennurbsStatic zlib opennurbs_public_freetype android_uuid android)
|
|
endif()
|
|
if (LINUX AND NOT ANDROID)
|
|
target_link_libraries( OpenNURBS zlib opennurbs_public_freetype android_uuid)
|
|
target_link_libraries( opennurbsStatic zlib opennurbs_public_freetype android_uuid)
|
|
endif()
|
|
if (APPLE)
|
|
target_link_libraries( OpenNURBS ${OPENNURBS_APPLE_DEPENDENCIES} zlib)
|
|
target_link_libraries( opennurbsStatic ${OPENNURBS_APPLE_DEPENDENCIES} zlib)
|
|
endif()
|
|
if (WIN32)
|
|
target_link_libraries( OpenNURBS Shlwapi Usp10 zlib)
|
|
target_link_libraries( opennurbsStatic Shlwapi Usp10 zlib)
|
|
endif()
|
|
|
|
if (APPLE)
|
|
set_target_properties( OpenNURBS PROPERTIES
|
|
FRAMEWORK TRUE
|
|
FRAMEWORK_VERSION A
|
|
# MACOSX_FRAMEWORK_IDENTIFIER "com.mcneel.OpenNURBS"
|
|
# VERSION "8.0.0"
|
|
# SOVERSION "8.0.0"
|
|
PUBLIC_HEADER "${OPENNURBS_PUBLIC_HEADERS}"
|
|
)
|
|
|
|
install( TARGETS OpenNURBS DESTINATION "Frameworks")
|
|
else()
|
|
install( TARGETS OpenNURBS DESTINATION "lib" )
|
|
install( FILES ${OPENNURBS_PUBLIC_HEADERS} DESTINATION "include/OpenNURBS")
|
|
endif()
|