1 # SPDX-FileCopyrightText: 2006 Blender Authors
3 # SPDX-License-Identifier: GPL-2.0-or-later
6 add_definitions(-DHAVE_EXECINFO_H)
15 ../../../extern/wcwidth
16 ../../../extern/json/include
18 ${EIGEN3_INCLUDE_DIRS}
28 intern/BLI_filelist.cc
30 intern/BLI_ghash_utils.cc
32 intern/BLI_heap_simple.c
35 intern/BLI_linklist_lockfree.c
41 intern/BLI_subprocess.cc
44 intern/array_store_utils.cc
48 intern/atomic_disjoint_set.cc
49 intern/bit_bool_conversion.cc
53 intern/bitmap_draw_2d.cc
57 intern/compute_context.cc
58 intern/convexhull_2d.cc
64 intern/endian_switch.c
65 intern/expr_pylike_eval.c
69 intern/filereader_file.c
70 intern/filereader_gzip.c
71 intern/filereader_memory.c
72 intern/filereader_zstd.c
74 intern/generic_vector_array.cc
75 intern/generic_virtual_array.cc
76 intern/generic_virtual_vector_array.cc
82 intern/implicit_sharing.cc
84 intern/index_mask_expression.cc
92 intern/lazy_threading.cc
93 intern/length_parameterize.cc
96 intern/math_base_inline.c
97 intern/math_base_safe_inline.c
98 intern/math_basis_types.cc
99 intern/math_bits_inline.c
100 intern/math_boolean.cc
102 intern/math_color_blend_inline.c
103 intern/math_color_inline.c
105 intern/math_geom_inline.c
107 intern/math_interp.cc
108 intern/math_matrix.cc
109 intern/math_matrix_c.cc
110 intern/math_rotation.cc
111 intern/math_rotation_c.cc
112 intern/math_solvers.cc
113 intern/math_statistics.cc
116 intern/math_vector.cc
117 intern/math_vector_inline.c
118 intern/memory_cache.cc
119 intern/memory_counter.cc
120 intern/memory_utils.cc
121 intern/mesh_boolean.cc
122 intern/mesh_intersect.cc
125 intern/offset_indices.cc
126 intern/ordered_edge.cc
128 intern/polyfill_2d.cc
129 intern/polyfill_2d_beautify.cc
133 intern/resource_scope.cc
135 intern/scanfill_utils.c
138 intern/smaa_textures.c
144 intern/string_cursor_utf8.c
146 intern/string_search.cc
147 intern/string_utf8.cc
148 intern/string_utils.cc
151 intern/task_iterator.c
154 intern/task_scheduler.cc
163 intern/virtual_array.cc
166 intern/winstuff_dir.cc
167 intern/winstuff_registration.cc
169 intern/BLI_mempool_private.h
171 # Header as source (included in C files above).
173 intern/list_sort_impl.h
182 BLI_array_store_utils.h
188 BLI_atomic_disjoint_set.hh
190 BLI_bit_bool_conversion.hh
191 BLI_bit_group_vector.hh
195 BLI_bit_span_to_index_ranges.hh
208 BLI_compiler_compat.h
209 BLI_compiler_typecheck.h
210 BLI_compute_context.hh
211 BLI_concurrent_map.hh
217 BLI_cpp_types_make.hh
219 BLI_devirtualize_parameters.hh
223 BLI_dot_export_attribute_enums.hh
228 BLI_endian_switch_inline.h
229 BLI_enumerable_thread_specific.hh
230 BLI_expr_pylike_eval.h
236 BLI_fixed_width_int.hh
237 BLI_fixed_width_int_str.hh
242 BLI_generic_pointer.hh
244 BLI_generic_value_map.hh
245 BLI_generic_vector_array.hh
246 BLI_generic_virtual_array.hh
247 BLI_generic_virtual_vector_array.hh
258 BLI_implicit_sharing.h
259 BLI_implicit_sharing.hh
260 BLI_implicit_sharing_ptr.hh
262 BLI_index_mask_expression.hh
263 BLI_index_mask_fwd.hh
265 BLI_index_ranges_builder.hh
266 BLI_index_ranges_builder_fwd.hh
267 BLI_inplace_priority_queue.hh
274 BLI_lazy_threading.hh
275 BLI_length_parameterize.hh
276 BLI_linear_allocator.hh
277 BLI_linear_allocator_chunked_list.hh
280 BLI_linklist_lockfree.h
283 BLI_listbase_wrapper.hh
286 BLI_math_angle_types.hh
287 BLI_math_axis_angle.hh
288 BLI_math_axis_angle_types.hh
292 BLI_math_basis_types.hh
297 BLI_math_color_blend.h
300 BLI_math_euler_types.hh
307 BLI_math_matrix_types.hh
310 BLI_math_quaternion.hh
311 BLI_math_quaternion_types.hh
314 BLI_math_rotation_legacy.hh
315 BLI_math_rotation_types.hh
317 BLI_math_statistics.h
321 BLI_math_vector_mpq_types.hh
322 BLI_math_vector_types.hh
323 BLI_math_vector_unroll.hh
328 BLI_memory_counter.hh
329 BLI_memory_counter_fwd.hh
334 BLI_mesh_intersect.hh
336 BLI_multi_value_map.hh
339 BLI_offset_indices.hh
342 BLI_parameter_pack_utils.hh
345 BLI_polyfill_2d_beautify.h
347 BLI_probing_strategies.hh
351 BLI_random_access_iterator_mixin.hh
353 BLI_resource_scope.hh
370 BLI_string_cursor_utf8.h
374 BLI_string_utf8_symbols.h
376 BLI_struct_equality_utils.hh
383 BLI_task_size_hints.hh
387 BLI_time_utildefines.h
391 BLI_unique_sorted_indices.hh
394 BLI_utildefines_iter.h
395 BLI_utildefines_stack.h
396 BLI_utildefines_variadic.h
397 BLI_utility_mixins.hh
403 BLI_vector_set_slots.hh
405 BLI_virtual_array_fwd.hh
406 BLI_virtual_vector_array.hh
411 # Without these files listed, they aren't known to CMake.
412 ../../../extern/json/include/json.hpp
417 PRIVATE bf::extern::fmtlib
418 PRIVATE bf::extern::xxhash
420 PRIVATE bf::intern::guardedalloc
422 PRIVATE bf::intern::atomic
423 PRIVATE extern_fmtlib
424 PUBLIC bf::dependencies::optional::tbb
429 if(NOT WITH_PYTHON_MODULE)
437 if(WITH_MEM_VALGRIND)
438 add_definitions(-DWITH_MEM_VALGRIND)
442 add_definitions(-DWITH_GMP)
455 ${FFTW3_INCLUDE_DIRS}
460 add_definitions(-DWITH_FFTW3)
461 if(WITH_FFTW3_THREADS_F_SUPPORT)
462 add_definitions(-DWITH_FFTW3_THREADS_F_SUPPORT)
467 if(WITH_BLENDER_THUMBNAILER)
468 # Needed for querying the `thumbnailer .dll` in `winstuff.c`.
469 add_definitions(-DWITH_BLENDER_THUMBNAILER)
472 ../../../intern/utfconv
479 intern/system_win32.cc
486 intern/fileops_apple.mm
487 intern/storage_apple.mm
491 if(UNIX AND NOT APPLE)
493 bf_intern_libc_compat
497 # no need to compile object files for inline headers.
498 set_source_files_properties(
499 intern/math_base_inline.c
500 intern/math_base_safe_inline.c
501 intern/math_bits_inline.c
502 intern/math_color_blend_inline.c
503 intern/math_color_inline.c
504 intern/math_geom_inline.c
505 intern/math_vector_inline.c
506 PROPERTIES HEADER_FILE_ONLY TRUE
509 blender_add_lib(bf_blenlib "${SRC}" "${INC}" "${INC_SYS}" "${LIB}")
510 add_library(bf::blenlib ALIAS bf_blenlib)
514 tests/BLI_any_test.cc
515 tests/BLI_array_state_test.cc
516 tests/BLI_array_store_test.cc
517 tests/BLI_array_test.cc
518 tests/BLI_array_utils_test.cc
519 tests/BLI_binary_search_test.cc
520 tests/BLI_bit_group_vector_test.cc
521 tests/BLI_bit_ref_test.cc
522 tests/BLI_bit_span_test.cc
523 tests/BLI_bit_vector_test.cc
524 tests/BLI_bitmap_test.cc
525 tests/BLI_bounds_test.cc
526 tests/BLI_build_config_test.cc
527 tests/BLI_color_test.cc
528 tests/BLI_convexhull_2d_test.cc
529 tests/BLI_cpp_type_test.cc
530 tests/BLI_delaunay_2d_test.cc
531 tests/BLI_disjoint_set_test.cc
532 tests/BLI_expr_pylike_eval_test.cc
533 tests/BLI_fileops_test.cc
534 tests/BLI_fixed_width_int_test.cc
535 tests/BLI_function_ref_test.cc
536 tests/BLI_generic_array_test.cc
537 tests/BLI_generic_span_test.cc
538 tests/BLI_generic_vector_array_test.cc
539 tests/BLI_ghash_test.cc
540 tests/BLI_hash_mm2a_test.cc
541 tests/BLI_heap_simple_test.cc
542 tests/BLI_heap_test.cc
543 tests/BLI_implicit_sharing_test.cc
544 tests/BLI_index_mask_expression_test.cc
545 tests/BLI_index_mask_test.cc
546 tests/BLI_index_range_test.cc
547 tests/BLI_index_ranges_builder_test.cc
548 tests/BLI_inplace_priority_queue_test.cc
549 tests/BLI_kdopbvh_test.cc
550 tests/BLI_kdtree_test.cc
551 tests/BLI_length_parameterize_test.cc
552 tests/BLI_linear_allocator_chunked_list_test.cc
553 tests/BLI_linear_allocator_test.cc
554 tests/BLI_linklist_lockfree_test.cc
555 tests/BLI_listbase_test.cc
556 tests/BLI_map_test.cc
557 tests/BLI_math_base_safe_test.cc
558 tests/BLI_math_base_test.cc
559 tests/BLI_math_bits_test.cc
560 tests/BLI_math_color_test.cc
561 tests/BLI_math_geom_test.cc
562 tests/BLI_math_half_test.cc
563 tests/BLI_math_interp_test.cc
564 tests/BLI_math_matrix_test.cc
565 tests/BLI_math_matrix_types_test.cc
566 tests/BLI_math_rotation_test.cc
567 tests/BLI_math_rotation_types_test.cc
568 tests/BLI_math_solvers_test.cc
569 tests/BLI_math_time_test.cc
570 tests/BLI_math_vector_test.cc
571 tests/BLI_math_vector_types_test.cc
572 tests/BLI_memiter_test.cc
573 tests/BLI_memory_cache_test.cc
574 tests/BLI_memory_counter_test.cc
575 tests/BLI_memory_utils_test.cc
576 tests/BLI_mesh_boolean_test.cc
577 tests/BLI_mesh_intersect_test.cc
578 tests/BLI_multi_value_map_test.cc
579 tests/BLI_offset_indices_test.cc
580 tests/BLI_path_utils_test.cc
581 tests/BLI_polyfill_2d_test.cc
582 tests/BLI_pool_test.cc
583 tests/BLI_random_access_iterator_mixin_test.cc
584 tests/BLI_ressource_strings.h
585 tests/BLI_serialize_test.cc
586 tests/BLI_session_uid_test.cc
587 tests/BLI_set_test.cc
588 tests/BLI_span_test.cc
589 tests/BLI_stack_cxx_test.cc
590 tests/BLI_stack_test.cc
591 tests/BLI_string_ref_test.cc
592 tests/BLI_string_search_test.cc
593 tests/BLI_string_test.cc
594 tests/BLI_string_utf8_test.cc
595 tests/BLI_string_utils_test.cc
596 tests/BLI_task_graph_test.cc
597 tests/BLI_task_test.cc
598 tests/BLI_tempfile_test.cc
599 tests/BLI_unique_sorted_indices_test.cc
600 tests/BLI_utildefines_test.cc
601 tests/BLI_uuid_test.cc
602 tests/BLI_vector_set_test.cc
603 tests/BLI_vector_test.cc
604 tests/BLI_virtual_array_test.cc
606 tests/BLI_exception_safety_test_utils.hh
614 blender_add_test_suite_executable(BLI "${TEST_SRC}" "${INC};${TEST_INC}" "${INC_SYS}" "${LIB};${TEST_LIB}")
616 add_subdirectory(tests/performance)