kicad/3d-viewer/CMakeLists.txt

152 lines
4.1 KiB
CMake

add_definitions(-DPCBNEW)
include_directories(BEFORE ${INC_BEFORE})
include_directories(
textures
../pcbnew
../polygon
3d_canvas
3d_cache
3d_rendering
3d_viewer
${CMAKE_SOURCE_DIR}/include/gal/opengl
${GLEW_INCLUDE_DIR}
${GLM_INCLUDE_DIR}
${CMAKE_SOURCE_DIR}
${INC_AFTER}
)
# directories
set( DIR_DLG 3d_cache/dialogs )
set( DIR_RAY 3d_rendering/3d_render_raytracing )
set( DIR_RAY_ACC ${DIR_RAY}/accelerators )
set( DIR_RAY_2D ${DIR_RAY}/shapes2D )
set( DIR_RAY_3D ${DIR_RAY}/shapes3D )
set( DIR_3D_PLUGINS ${CMAKE_SOURCE_DIR}/plugins/ldr )
set(3D-VIEWER_SRCS
dialogs/dialog_3D_view_option_base.cpp
dialogs/dialog_3D_view_option.cpp
3d_aux.cpp
3d_canvas.cpp
3d_class.cpp
3d_draw.cpp
3d_draw_board_body.cpp
3d_draw_basic_functions.cpp
3d_draw_helper_functions.cpp
3d_frame.cpp
3d_material.cpp
3d_mesh_model.cpp
3d_read_mesh.cpp
3d_toolbar.cpp
info3d_visu.cpp
trackball.cpp
vrmlmodelparser.cpp
vrml_aux.cpp
vrml_v1_modelparser.cpp
vrml_v2_modelparser.cpp
x3dmodelparser.cpp
CImage.cpp
${DIR_3D_PLUGINS}/pluginldr.cpp
${DIR_3D_PLUGINS}/3d/pluginldr3D.cpp
3d_cache/3d_cache_wrapper.cpp
3d_cache/3d_cache.cpp
3d_cache/3d_plugin_manager.cpp
3d_cache/3d_filename_resolver.cpp
${DIR_DLG}/3d_cache_dialogs.cpp
${DIR_DLG}/dlg_3d_pathconfig_base.cpp
${DIR_DLG}/dlg_3d_pathconfig.cpp
${DIR_DLG}/dlg_select_3dmodel.cpp
${DIR_DLG}/panel_prev_model.cpp
3d_model_viewer/c3d_model_viewer.cpp
3d_rendering/3d_render_ogl_legacy/c_ogl_3dmodel.cpp
3d_rendering/3d_render_ogl_legacy/ogl_legacy_utils.cpp
3d_rendering/3d_render_ogl_legacy/c3d_render_createscene_ogl_legacy.cpp
3d_rendering/3d_render_ogl_legacy/c3d_render_ogl_legacy.cpp
3d_rendering/3d_render_ogl_legacy/clayer_triangles.cpp
${DIR_RAY}/ray.cpp
${DIR_RAY_2D}/cbbox2d.cpp
${DIR_RAY_2D}/cobject2d.cpp
${DIR_RAY_2D}/croundsegment2d.cpp
${DIR_RAY_3D}/cbbox.cpp
${DIR_RAY_3D}/cbbox_ray.cpp
3d_rendering/ccamera.cpp
3d_rendering/cimage.cpp
3d_rendering/ctrack_ball.cpp
3d_rendering/trackball.cpp
common_ogl/cogl_att_list.cpp
common_ogl/ogl_utils.cpp
)
add_library(3d-viewer STATIC ${3D-VIEWER_SRCS})
add_dependencies( 3d-viewer pcbcommon )
option( GLM_ENABLE_SIMD_SSE2 "Enable SSE2 optimizations" OFF )
option( GLM_ENABLE_SIMD_SSE3 "Enable SSE3 optimizations" OFF )
option( GLM_ENABLE_SIMD_AVX "Enable AVX optimizations" OFF )
option( GLM_ENABLE_SIMD_AVX2 "Enable AVX2 optimizations" OFF )
option( GLM_FORCE_PURE "Force 'pure' instructions" OFF )
if(GLM_FORCE_PURE)
add_definitions(-DGLM_FORCE_PURE)
if(CMAKE_COMPILER_IS_GNUCXX)
add_definitions(-mfpmath=387)
endif()
elseif(GLM_ENABLE_SIMD_AVX2)
if(CMAKE_COMPILER_IS_GNUCXX)
add_definitions(-mavx2)
elseif(GLM_USE_INTEL)
add_definitions(/QxAVX2)
elseif(MSVC)
add_definitions(/arch:AVX2)
endif()
elseif(GLM_ENABLE_SIMD_AVX)
if(CMAKE_COMPILER_IS_GNUCXX)
add_definitions(-mavx)
elseif(GLM_USE_INTEL)
add_definitions(/QxAVX)
elseif(MSVC)
add_definitions(/arch:AVX)
endif()
elseif(GLM_ENABLE_SIMD_SSE3)
if(CMAKE_COMPILER_IS_GNUCXX)
add_definitions(-msse3)
elseif(GLM_USE_INTEL)
add_definitions(/QxSSE3)
elseif(MSVC)
add_definitions(/arch:SSE2) # VC doesn't support /arch:SSE3
endif()
elseif(GLM_ENABLE_SIMD_SSE2)
if(CMAKE_COMPILER_IS_GNUCXX)
add_definitions(-msse2)
elseif(GLM_USE_INTEL)
add_definitions(/QxSSE2)
elseif(MSVC)
if(NOT CMAKE_CL_64)
add_definitions(/arch:SSE2)
endif()
endif()
endif()
option( GLM_ENABLE_FAST_MATH "Enable fast math optimizations" OFF )
if(GLM_ENABLE_FAST_MATH)
if(CMAKE_COMPILER_IS_GNUCXX)
add_definitions(-ffast-math)
endif()
if(MSVC)
add_definitions(/fp:fast)
endif()
elseif(NOT GLM_ENABLE_FAST_MATH)
if(MSVC)
add_definitions(/fp:precise)
endif()
endif()
target_link_libraries( 3d-viewer ${Boost_} ${wxWidgets_LIBRARIES} ${OPENGL_LIBRARIES} kicad_3dsg )
add_subdirectory( 3d_cache )