gen_samplelists.sh 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. #!/usr/bin/env bash
  2. basedir=".."
  3. file=CMake/SampleFileList.cmake
  4. src='set(sample_SRC_FILES'
  5. hdr='set(sample_HDR_FILES'
  6. srcdir='${PROJECT_SOURCE_DIR}'
  7. srcpath=Samples
  8. samples=( 'shell'
  9. 'basic/animation' 'basic/benchmark' 'basic/bitmapfont' 'basic/customlog' 'basic/databinding' 'basic/demo' 'basic/drag' 'basic/loaddocument' 'basic/treeview' 'basic/transform'
  10. 'basic/lottie' 'basic/svg' 'basic/sdl2' 'basic/sdl2_sdlrenderer' 'basic/sfml2'
  11. 'tutorial/template' 'tutorial/datagrid' 'tutorial/datagrid_tree' 'tutorial/drag'
  12. 'invaders' 'luainvaders'
  13. )
  14. printfiles() {
  15. # Print headers
  16. name=${1//basic\//} #substitute basic/ for nothing
  17. name=${name//tutorial\//tutorial_} #substitute 'tutorial/' for 'tutorial_'
  18. echo ${hdr/sample/$name} >>$file
  19. find $srcpath/$1/src -maxdepth 1 -iname "*.h" -exec echo ' '$srcdir/{} \; 2>/dev/null | sort -f >>$file
  20. find $srcpath/$1/include -maxdepth 1 -iname "*.h" -exec echo ' '$srcdir/{} \; 2>/dev/null | sort -f >>$file 2>/dev/null
  21. echo -e ')\n' >>$file
  22. # Print source files
  23. echo ${src/sample/$name} >>$file
  24. find $srcpath/$1/src -maxdepth 1 -iname "*.cpp" -exec echo ' '$srcdir/{} \; 2>/dev/null | sort -f >>$file
  25. echo -e ')\n' >>$file
  26. }
  27. pushd $basedir
  28. echo -e "# This file was auto-generated with gen_samplelists.sh\n" >$file
  29. for sample in ${samples[@]}; do
  30. printfiles $sample
  31. done
  32. echo '# Deal with platform specific sources for sample shell' >> $file
  33. echo 'if(WIN32)' >> $file
  34. echo ' list(APPEND shell_SRC_FILES' >> $file
  35. echo ' ${PROJECT_SOURCE_DIR}/Samples/shell/src/win32/ShellWin32.cpp' >> $file
  36. echo ' ${PROJECT_SOURCE_DIR}/Samples/shell/src/win32/InputWin32.cpp' >> $file
  37. echo ' ${PROJECT_SOURCE_DIR}/Samples/shell/src/win32/ShellRenderInterfaceExtensionsOpenGL_Win32.cpp' >> $file
  38. echo ' )' >> $file
  39. echo ' list(APPEND shell_HDR_FILES' >> $file
  40. echo ' ${PROJECT_SOURCE_DIR}/Samples/shell/include/win32/InputWin32.h' >> $file
  41. echo ' ${PROJECT_SOURCE_DIR}/Samples/shell/include/win32/IncludeWindows.h' >> $file
  42. echo ' )' >> $file
  43. echo 'elseif(APPLE)' >> $file
  44. echo ' list(APPEND shell_SRC_FILES' >> $file
  45. echo ' ${PROJECT_SOURCE_DIR}/Samples/shell/src/macosx/ShellMacOSX.cpp' >> $file
  46. echo ' ${PROJECT_SOURCE_DIR}/Samples/shell/src/macosx/InputMacOSX.cpp' >> $file
  47. echo ' ${PROJECT_SOURCE_DIR}/Samples/shell/src/macosx/ShellRenderInterfaceExtensionsOpenGL_MacOSX.cpp' >> $file
  48. echo ' )' >> $file
  49. echo ' list(APPEND shell_HDR_FILES' >> $file
  50. echo ' ${PROJECT_SOURCE_DIR}/Samples/shell/include/macosx/InputMacOSX.h' >> $file
  51. echo ' )' >> $file
  52. echo 'else()' >> $file
  53. echo ' list(APPEND shell_SRC_FILES' >> $file
  54. echo ' ${PROJECT_SOURCE_DIR}/Samples/shell/src/x11/ShellX11.cpp' >> $file
  55. echo ' ${PROJECT_SOURCE_DIR}/Samples/shell/src/x11/InputX11.cpp' >> $file
  56. echo ' ${PROJECT_SOURCE_DIR}/Samples/shell/src/x11/ShellRenderInterfaceExtensionsOpenGL_X11.cpp' >> $file
  57. echo ' )' >> $file
  58. echo ' list(APPEND shell_HDR_FILES' >> $file
  59. echo ' ${PROJECT_SOURCE_DIR}/Samples/shell/include/x11/InputX11.h' >> $file
  60. echo ' ${PROJECT_SOURCE_DIR}/Samples/shell/include/x11/X11MacroZapper.h' >> $file
  61. echo ' )' >> $file
  62. echo 'endif()' >> $file
  63. popd