gen_samplelists.sh 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. #!/usr/bin/env bash
  2. basedir="../.."
  3. file=Build/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=('basic/customlog' 'basic/directx' 'basic/drag' 'basic/loaddocument'
  9. 'basic/ogre3d' 'basic/treeview' 'invaders' 'luainvaders' 'pyinvaders' 'shell'
  10. 'tutorial/template' 'tutorial/datagrid' 'tutorial/datagrid_tree' 'tutorial/tutorial_drag'
  11. )
  12. printfiles() {
  13. # Print headers
  14. name=${1//basic\//} #substitute basic/ for nothing
  15. name=${name//tutorial\/} #substitute tutorial/ for nothing
  16. echo ${hdr/sample/$name} >>$file
  17. find $srcpath/$1/src -maxdepth 1 -iname "*.h" -exec echo ' '$srcdir/{} \; 2>/dev/null | sort -f >>$file
  18. find $srcpath/$1/include -maxdepth 1 -iname "*.h" -exec echo ' '$srcdir/{} \; 2>/dev/null | sort -f >>$file 2>/dev/null
  19. echo -e ')\n' >>$file
  20. # Print source files
  21. echo ${src/sample/$name} >>$file
  22. find $srcpath/$1/src -maxdepth 1 -iname "*.cpp" -exec echo ' '$srcdir/{} \; 2>/dev/null | sort -f >>$file
  23. echo -e ')\n' >>$file
  24. }
  25. pushd $basedir
  26. echo -e "# This file was auto-generated with gen_samplelists.sh\n" >$file
  27. for sample in ${samples[@]}; do
  28. printfiles $sample
  29. done
  30. echo '# Deal with platform specific sources for sample shell' >> $file
  31. echo 'if(WIN32)' >> $file
  32. echo ' list(APPEND shell_SRC_FILES' >> $file
  33. echo ' ${PROJECT_SOURCE_DIR}/Samples/shell/src/win32/ShellWin32.cpp' >> $file
  34. echo ' ${PROJECT_SOURCE_DIR}/Samples/shell/src/win32/InputWin32.cpp' >> $file
  35. echo ' )' >> $file
  36. echo ' list(APPEND shell_HDR_FILES' >> $file
  37. echo ' ${PROJECT_SOURCE_DIR}/Samples/shell/include/win32/InputWin32.h' >> $file
  38. echo ' )' >> $file
  39. echo 'elseif(APPLE)' >> $file
  40. echo ' list(APPEND shell_SRC_FILES' >> $file
  41. echo ' ${PROJECT_SOURCE_DIR}/Samples/shell/src/macosx/ShellMacOSX.cpp' >> $file
  42. echo ' ${PROJECT_SOURCE_DIR}/Samples/shell/src/macosx/InputMacOSX.cpp' >> $file
  43. echo ' )' >> $file
  44. echo ' list(APPEND shell_HDR_FILES' >> $file
  45. echo ' ${PROJECT_SOURCE_DIR}/Samples/shell/include/macosx/InputMacOSX.h' >> $file
  46. echo ' )' >> $file
  47. echo 'else()' >> $file
  48. echo ' list(APPEND shell_SRC_FILES' >> $file
  49. echo ' ${PROJECT_SOURCE_DIR}/Samples/shell/src/x11/ShellX11.cpp' >> $file
  50. echo ' ${PROJECT_SOURCE_DIR}/Samples/shell/src/x11/InputX11.cpp' >> $file
  51. echo ' )' >> $file
  52. echo ' list(APPEND shell_HDR_FILES' >> $file
  53. echo ' ${PROJECT_SOURCE_DIR}/Samples/shell/include/x11/InputX11.h' >> $file
  54. echo ' )' >> $file
  55. echo 'endif()' >> $file
  56. popd