Files
Z3D/CMakeLists.txt
2025-04-01 21:51:56 +02:00

259 lines
13 KiB
CMake
Executable File

cmake_minimum_required(VERSION 3.27)
project(z3d)
set(CMAKE_CXX_STANDARD 23)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Ofast -pedantic -Wall -Werror ")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fmacro-prefix-map=${CMAKE_CURRENT_SOURCE_DIR}/=")
add_executable(z3d main.cpp
include/assets/components/material_components.hpp
include/assets/components/mesh_shader_components.hpp
include/assets/components/mesh_vertex_components.hpp
include/assets/components/mesh_vertex_components.hpp
include/assets/components/point_cloud_vertex_components.hpp
include/assets/components/shader_components.hpp
include/assets/components/texture_components.hpp
# include/assets/data_loaders/generic/base_dynamic_loader.hpp
# include/assets/data_loaders/material_library_loader.hpp
# include/assets/data_loaders/material_loader.hpp
# include/assets/data_loaders/mesh_loader.hpp
# include/assets/data_loaders/point_cloud_loader.hpp
# include/assets/data_loaders/texture_loader.hpp
include/assets/data_stores.hpp
include/assets/data_stores/generic/generic_basic_store.hpp
include/assets/data_stores/generic/generic_material_store.hpp
include/assets/data_stores/generic/generic_mesh_store.hpp
include/assets/data_stores/generic/generic_point_cloud_store.hpp
include/assets/data_stores/material_library_store.hpp
include/assets/data_stores/material_store.hpp
include/assets/data_stores/mesh_store.hpp
include/assets/data_stores/point_cloud_store.hpp
include/assets/data_stores/pose_list_store.hpp
include/assets/data_stores/pose_store.hpp
include/assets/data_stores/shader_source_store.hpp
include/assets/data_stores/texture_store.hpp
include/assets/data_views/generic/generic_mesh_view.hpp
include/assets/data_views/generic/generic_point_cloud_view.hpp
include/assets/data_views/material_view.hpp
include/assets/data_views/mesh_view.hpp
include/assets/data_views/point_cloud_view.hpp
include/assets/data_views/pose_list_view.hpp
include/assets/data_views/shader_source_view.hpp
include/assets/data_views/texture_view.hpp
include/assets/data/generic/component_array_set.hpp
include/assets/data/generic/component_set.hpp
include/assets/data/material_data.hpp
include/assets/data/material_library_data.hpp
include/assets/data/mesh_data.hpp
include/assets/data/point_cloud_data.hpp
include/assets/data/pose_data.hpp
include/assets/data/pose_list_data.hpp
include/assets/data/shader_source_data.hpp
include/assets/data/texture_data.hpp
include/assets/data/uniform_surface_properties.hpp
include/assets/fallback_data/fallback_material.hpp
include/assets/fallback_data/fallback_texture.hpp
include/assets/file_parsers/generic/generic_3dtk_loader.hpp
include/assets/file_parsers/generic/generic_3dtk_loader.hpp
include/assets/file_parsers/glsl_parser.hpp
include/assets/file_parsers/kitti_parser.hpp
include/assets/file_parsers/kitti_pose_parser.hpp
include/assets/file_parsers/mtl_parser.hpp
include/assets/file_parsers/obj_parser.hpp
include/assets/file_parsers/stl_loader.hpp
include/assets/file_parsers/threedtk_pose_loader.hpp
include/assets/file_parsers/uos_loader.hpp
include/assets/file_parsers/uos_normal_loader.hpp
include/assets/file_parsers/uos_rgb_loader.hpp
include/assets/file_parsers/uosr_loader.hpp
include/assets/identifiers.hpp
include/assets/model_geometry.hpp
include/assets/path_id_lookups.hpp
include/config/primitives.hpp
# include/geometry/aabb.hpp
# include/geometry/normal_estimation.hpp
# include/opengl/data_managers/material_manager.hpp
# include/opengl/data_managers/mesh_index_buffer_manager.hpp
# include/opengl/data_managers/mesh_vertex_buffer_manager.hpp
# include/opengl/data_managers/point_cloud_vertex_buffer_manager.hpp
# include/opengl/data_managers/shader_manager.hpp
# include/opengl/data_managers/shader_program_manager.hpp
# include/opengl/data_managers/shader_source_manager.hpp
# include/opengl/data_managers/texture_manager.hpp
# include/opengl/data/material_data.hpp
# include/opengl/data/mesh_data.hpp
# include/opengl/data/point_cloud_data.hpp
# include/opengl/data/shader_data.hpp
# include/opengl/data/shader_program_data.hpp
# include/opengl/error.hpp
# include/opengl/error.hpp
# include/opengl/handles/alpha_handle.hpp
# include/opengl/handles/index_buffer_handle.hpp
# include/opengl/handles/material_handle.hpp
# include/opengl/handles/matrix_handles.hpp
# include/opengl/handles/mesh_handle.hpp
# include/opengl/handles/point_cloud_handle.hpp
# include/opengl/handles/shader_handle_set.hpp
# include/opengl/handles/shader_handle.hpp
# include/opengl/handles/shader_program_handle.hpp
# include/opengl/handles/surface_properties_handle.hpp
# include/opengl/handles/texture_handle.hpp
# include/opengl/handles/vertex_buffer_handle.hpp
# include/opengl/metadata/index_buffer_metadata.hpp
# include/opengl/metadata/material_metadata.hpp
# include/opengl/metadata/mesh_vertex_buffer_metadata.hpp
# include/opengl/metadata/point_cloud_vertex_buffer_metadata.hpp
# include/opengl/metadata/preprocessed_shader_source_metadata.hpp
# include/opengl/metadata/shader_metadata.hpp
# include/opengl/metadata/shader_program_metadata.hpp
# include/opengl/metadata/shader_set_metadata.hpp
# include/opengl/metadata/shader_source_metadata.hpp
# include/opengl/metadata/texture_metadata.hpp
# include/opengl/metadata/uniform_buffer_alignment_metadata.hpp
# include/opengl/resource_management/reference_counter.hpp
# include/opengl/resource_management/reference_counter.hpp
# include/opengl/resource_management/resource_handle.hpp
# include/opengl/resource_management/resource_manager.hpp
# include/opengl/shader_program_lookup.hpp
# include/opengl/shading/attributes/mesh_attributes.hpp
# include/opengl/shading/attributes/point_cloud_attributes.hpp
# include/opengl/shading/features/combined_features.hpp
# include/opengl/shading/features/generic_features.hpp
# include/opengl/shading/features/mesh_features.hpp
# include/opengl/shading/features/point_cloud_features.hpp
# include/opengl/shading/model_geometry.hpp
# include/opengl/shading/requirements/shader_program_requirements.hpp
# include/opengl/shading/requirements/shader_requirements.hpp
# include/opengl/shading/sampler_uniform.hpp
# include/opengl/shading/sampler_uniforms/mesh_samplers_uniforms.hpp
# include/opengl/shading/shader_metadata_language.hpp
# include/opengl/shading/shader_stage.hpp
# include/opengl/shading/uniform_block.hpp
# include/opengl/shading/uniform_blocks/mesh_uniform_blocks.hpp
# include/opengl/shading/uniform_blocks/point_cloud_uniform_blocks.hpp
# include/opengl/shading/uniform.hpp
# include/opengl/shading/uniforms/mesh_uniforms.hpp
# include/opengl/shading/uniforms/point_cloud_uniforms.hpp
# include/opengl/type_utils.hpp
# include/opengl/types.hpp
# include/rendering/batch_renderers/mesh_batch_renderer.hpp
# include/rendering/batch_renderers/point_cloud_batch_renderer.hpp
# include/rendering/batches/mesh_batch.hpp
# include/rendering/batches/point_cloud_batch.hpp
# include/rendering/modes/mesh_modes.hpp
# include/rendering/modes/point_cloud_modes.hpp
# include/rendering/requirements/mesh_requirements.hpp
# include/rendering/requirements/point_cloud_requirements.hpp
# include/rendering/shader_program_lookups/mesh_lookup.hpp
# include/rendering/shader_program_lookups/mesh_lookup.hpp
# include/rendering/shader_program_lookups/point_cloud_lookup.hpp
# include/scene/camera.hpp
# include/scene/flying_camera.hpp
# include/scene/lighting_setup.hpp
include/util/arx.hpp
include/util/binary_ifstream.hpp
include/util/enum_bitfield_operators.hpp
include/util/extra_arx_parsers.hpp
include/util/file_id_lookup.hpp
include/util/for_each.hpp
include/util/function.hpp
include/util/id_type.hpp
include/util/image.hpp
include/util/line_parser.hpp
include/util/logger.hpp
include/util/reference_counter.hpp
include/util/result.hpp
include/util/specialised_lambda.hpp
include/util/string_indexer.hpp
include/util/string_list.hpp
include/util/string_literal.hpp
include/util/string_lookup.hpp
include/util/uix.hpp
include/util/unroll_bool_template.hpp
include/util/vector_replace_range.hpp
# include/viewer/asset_loader.hpp
# include/viewer/asset_types.hpp
# include/viewer/dynamic_shader_program_loading.hpp
# include/viewer/instance.hpp
# include/viewer/settings.hpp
# source/assets/data_loaders/generic/base_dynamic_loader.ipp
# source/assets/data_loaders/mesh_loader.cpp
# source/assets/data_loaders/mesh_loader.cpp
# source/assets/data_loaders/point_cloud_loader.cpp
# source/assets/data_loaders/texture_loader.cpp
source/assets/data_stores/generic/generic_basic_store.ipp
source/assets/data_stores/generic/generic_material_store.ipp
source/assets/data_stores/generic/generic_mesh_store.ipp
source/assets/data_stores/generic/generic_point_cloud_store.ipp
source/assets/data_stores/shader_source_store.ipp
source/assets/data/material_data.ipp
source/assets/data/mesh_data.ipp
source/assets/data/point_cloud_data.ipp
source/assets/data/texture_data.ipp
# source/assets/fallback_data/default_texture_data.cpp
# source/assets/fallback_data/fallback_material.cpp
# source/assets/file_parsers/generic/generic_3dtk_loader.ipp
# source/assets/file_parsers/glsl_parser.cpp
# source/assets/file_parsers/kitti_parser.cpp
# source/assets/file_parsers/kitti_pose_parser.cpp
source/assets/file_parsers/mtl_parser.cpp
source/assets/file_parsers/obj_parser.cpp
include/util/array_hash.hpp
include/util/vector_hash.hpp
# source/assets/file_parsers/stl_loader.cpp
# source/assets/file_parsers/threedtk_pose_loader.cpp
# source/geometry/normal_estimation.cpp
# source/opengl/data_managers/mesh_index_buffer_manager.cpp
# source/opengl/data_managers/mesh_vertex_buffer_manager.cpp
# source/opengl/data_managers/point_cloud_vertex_buffer_manager.cpp
# source/opengl/data_managers/shader_manager.cpp
# source/opengl/data_managers/shader_program_manager.cpp
# source/opengl/data_managers/shader_source_manager.cpp
# source/opengl/data_managers/texture_manager.cpp
# source/opengl/data/material_data.ipp
# source/opengl/data/mesh_data.cpp
# source/opengl/data/point_cloud_data.cpp
# source/opengl/data/point_cloud_data.ipp
# source/opengl/data/shader_data.cpp
# source/opengl/data/shader_data.ipp
# source/opengl/data/shader_program_data.cpp
# source/opengl/data/texture_data.ipp
# source/opengl/handles/index_buffer_handle.ipp
# source/opengl/handles/mesh_handle.ipp
# source/opengl/handles/point_cloud_handle.ipp
# source/opengl/handles/shader_program_handle.cpp
# source/opengl/handles/shader_program_handle.ipp
# source/opengl/handles/texture_handle.ipp
# source/opengl/handles/vertex_buffer_handle.ipp
# source/opengl/resource_management/resource_handle.ipp
# source/opengl/resource_management/resource_manager.ipp
# source/opengl/shader_program_lookup.cpp
# source/rendering/batch_renderers/mesh_batch_renderer.cpp
# source/rendering/batch_renderers/point_cloud_batch_renderer.cpp
# source/rendering/batches/mesh_batch.ipp
# source/rendering/batches/point_cloud_batch.ipp
# source/rendering/shader_program_lookups/mesh_lookup.cpp
# source/rendering/shader_program_lookups/point_cloud_lookup.cpp
# source/scene/flying_camera.cpp
# source/viewer/asset_loader.cpp
# source/viewer/dynamic_shader_program_loading.cpp
# source/viewer/instance.cpp
)
target_include_directories(z3d PRIVATE include)
target_include_directories(z3d PRIVATE source) # for ipp headers
add_subdirectory(libraries)
find_package(GLEW REQUIRED)
find_package(OpenGL REQUIRED)
find_package(SFML REQUIRED COMPONENTS graphics system)
find_package(Eigen3 3.4 REQUIRED NO_MODULE)
find_package(TBB REQUIRED NO_MODULE)
include_directories(${SFML_INCLUDE_DIR})
include_directories(SYSTEM ${eigen_INCLUDE_DIR})
target_link_libraries(z3d Eigen3::Eigen sfml-graphics sfml-system sfml-window TBB::tbb ${OPENGL_LIBRARIES} ${GLEW_LIBRARIES})