project(mapnik-benchmark) set(BENCHMARK_SRCS src/normalize_angle.cpp src/test_array_allocation.cpp src/test_expression_parse.cpp src/test_face_ptr_creation.cpp src/test_font_registration.cpp src/test_getline.cpp src/test_marker_cache.cpp src/test_noop_rendering.cpp src/test_numeric_cast_vs_static_cast.cpp src/test_offset_converter.cpp src/test_png_encoding1.cpp src/test_png_encoding2.cpp src/test_polygon_clipping_rendering.cpp src/test_polygon_clipping.cpp src/test_proj_transform1.cpp src/test_quad_tree.cpp src/test_rendering_shared_map.cpp src/test_rendering.cpp src/test_to_bool.cpp src/test_to_double.cpp src/test_to_int.cpp src/test_to_string1.cpp src/test_to_string2.cpp src/test_utf_encoding.cpp ) function(mapnik_create_benchmark) get_filename_component(BENCHNAME ${ARGV0} NAME_WE) set(TARGET_NAME "mapnik-benchmark-${BENCHNAME}") add_executable(${TARGET_NAME} ${ARGV0}) target_include_directories(${TARGET_NAME} PRIVATE include) target_link_libraries(${TARGET_NAME} PRIVATE mapnik::agg mapnik::mapnik ICU::data ICU::i18n ICU::uc # needed for the static build (TODO: why isn't this correctly propagated from mapnik::mapnik?) ) set_target_properties(${TARGET_NAME} PROPERTIES OUTPUT_NAME "${BENCHNAME}" ) endfunction() foreach(benchmark ${BENCHMARK_SRCS}) mapnik_create_benchmark(${benchmark}) endforeach() file(COPY data DESTINATION "${MAPNIK_OUTPUT_DIR}/benchmark") file(COPY run_benchmarks DESTINATION "${MAPNIK_OUTPUT_DIR}" FILE_PERMISSIONS OWNER_READ OWNER_EXECUTE OWNER_WRITE GROUP_WRITE GROUP_READ GROUP_EXECUTE WORLD_READ )