summaryrefslogtreecommitdiff
path: root/graphics/asymptote/cmake-scripts/asy-base-files.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'graphics/asymptote/cmake-scripts/asy-base-files.cmake')
-rw-r--r--graphics/asymptote/cmake-scripts/asy-base-files.cmake78
1 files changed, 78 insertions, 0 deletions
diff --git a/graphics/asymptote/cmake-scripts/asy-base-files.cmake b/graphics/asymptote/cmake-scripts/asy-base-files.cmake
new file mode 100644
index 0000000000..0622c21cb4
--- /dev/null
+++ b/graphics/asymptote/cmake-scripts/asy-base-files.cmake
@@ -0,0 +1,78 @@
+set(ASY_STATIC_BASE_FILES
+ animate animation annotate babel bezulate binarytree bsp CAD colormap
+ contour3 contour drawtree embed external feynman flowchart fontsize
+ geometry graph3 graph graph_settings graph_splinetype grid3 interpolate
+ labelpath3 labelpath lmfit map mapArray markers math metapost obj ode palette patterns
+ plain_arcs plain_arrows plain plain_bounds plain_boxes plain_constants plain_debugger
+ plain_filldraw plain_Label plain_margins plain_markers plain_paths plain_pens
+ plain_picture plain_prethree plain_scaling plain_shipout plain_strings pstoedit rational rationalSimplex
+ roundedpath simplex size10 size11 slide slopefield smoothcontour3 solids stats syzygy simplex2
+ texcolors three_arrows three three_light three_margins three_surface three_tube tree
+ trembling tube v3d x11colors
+)
+
+set(ASY_STATIC_SHADER_FILES
+ blend compress count fragment screen sum1 sum2 sum2fast
+ sum3 vertex zero
+)
+
+set(OTHER_STATIC_BASE_FILES nopapersize.ps)
+
+# base dir
+set(ASY_SOURCE_BASE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/base)
+set(ASY_BUILD_BASE_DIR ${CMAKE_CURRENT_BINARY_DIR}/base)
+
+file(MAKE_DIRECTORY ${ASY_BUILD_BASE_DIR})
+
+# version.asy
+configure_file(${ASY_RESOURCE_DIR}/versionTemplate.asy.in ${ASY_BUILD_BASE_DIR}/version.asy)
+list(APPEND ASY_OUTPUT_BASE_FILES ${ASY_BUILD_BASE_DIR}/version.asy)
+
+# copy base files to build dir
+macro (copy_base_file_with_custom_output_name base_file_name output_file_name)
+ add_custom_command(
+ COMMAND ${CMAKE_COMMAND} -E copy
+ ${ASY_SOURCE_BASE_DIR}/${base_file_name}
+ ${ASY_BUILD_BASE_DIR}/${output_file_name}
+ OUTPUT ${ASY_BUILD_BASE_DIR}/${output_file_name}
+ MAIN_DEPENDENCY ${ASY_SOURCE_BASE_DIR}/${base_file_name}
+ )
+
+ list(APPEND ASY_OUTPUT_BASE_FILES ${ASY_BUILD_BASE_DIR}/${output_file_name})
+endmacro()
+
+macro (copy_base_file base_file_name)
+ copy_base_file_with_custom_output_name(${base_file_name} ${base_file_name})
+endmacro()
+
+foreach(ASY_STATIC_BASE_FILE ${ASY_STATIC_BASE_FILES})
+ copy_base_file(${ASY_STATIC_BASE_FILE}.asy)
+endforeach ()
+
+foreach(OTHER_STATIC_BASE_FILE ${OTHER_STATIC_BASE_FILES})
+ copy_base_file(${OTHER_STATIC_BASE_FILE})
+endforeach ()
+
+file(MAKE_DIRECTORY ${ASY_BUILD_BASE_DIR}/shaders)
+foreach(ASY_STATIC_SHADER_FILE ${ASY_STATIC_SHADER_FILES})
+ copy_base_file(shaders/${ASY_STATIC_SHADER_FILE}.glsl)
+endforeach ()
+
+# generated csv files
+foreach(csv_enum_file ${ASY_CSV_ENUM_FILES})
+ add_custom_command(
+ OUTPUT ${ASY_BUILD_BASE_DIR}/${csv_enum_file}.asy
+ COMMAND ${PY3_INTERPRETER} ${ASY_SCRIPTS_DIR}/generate_enums.py
+ --language asy
+ --name ${csv_enum_file}
+ --input ${ASY_RESOURCE_DIR}/${csv_enum_file}.csv
+ --output ${ASY_BUILD_BASE_DIR}/${csv_enum_file}.asy
+ MAIN_DEPENDENCY ${ASY_RESOURCE_DIR}/${csv_enum_file}.csv
+ )
+
+ list(APPEND ASY_OUTPUT_BASE_FILES ${ASY_BUILD_BASE_DIR}/${csv_enum_file}.asy)
+endforeach ()
+
+# asygl
+file(MAKE_DIRECTORY ${ASY_BUILD_BASE_DIR}/webgl)
+copy_base_file_with_custom_output_name(webgl/asygl-${ASY_GL_VERSION}.js webgl/asygl.js)