CMakeLists.txt 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. project(dx11_sample)
  2. set_property(GLOBAL PROPERTY USE_FOLDERS ON)
  3. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /UMBCS /D_UNICODE /DUNICODE")
  4. set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_HOME_DIRECTORY}/bin/DX11/)
  5. set(IMGUI_PATH "${CMAKE_SOURCE_DIR}/third_party/imgui/")
  6. set(IMGUI_INCLUDE "${IMGUI_PATH}" "${IMGUI_PATH}/backends/")
  7. set(IMGUI_SRC "${IMGUI_PATH}/backends/imgui_impl_dx11.cpp"
  8. "${IMGUI_PATH}/backends/imgui_impl_win32.cpp"
  9. "${IMGUI_PATH}/imgui.cpp"
  10. "${IMGUI_PATH}/imgui_demo.cpp"
  11. "${IMGUI_PATH}/imgui_draw.cpp"
  12. "${IMGUI_PATH}/imgui_tables.cpp"
  13. "${IMGUI_PATH}/imgui_widgets.cpp"
  14. )
  15. set(NIS_PATH "${CMAKE_SOURCE_DIR}/../NIS")
  16. set(SAMPLES_PATH "${CMAKE_SOURCE_DIR}")
  17. set(DX_SAMPLE_SRC "src/Sample.cpp"
  18. "src/AppRenderer.cpp"
  19. "src/UIRenderer.cpp"
  20. "src/DeviceResources.cpp"
  21. "src/NVScaler.cpp"
  22. "src/NVSharpen.cpp"
  23. "src/BilinearUpscale.cpp"
  24. "${SAMPLES_PATH}/common/Image.cpp"
  25. "src/dpi.manifest"
  26. )
  27. set(DX_SAMPLE_HEADERS "include/AppRenderer.h"
  28. "include/DeviceResources.h"
  29. "include/NVScaler.h"
  30. "include/NVSharpen.h"
  31. "include/UIRenderer.h"
  32. "include/BilinearUpscale.h"
  33. "include/DXUtilities.h"
  34. "${NIS_PATH}/NIS_Config.h"
  35. "${SAMPLES_PATH}/common/Image.h"
  36. "${SAMPLES_PATH}/common/Utilities.h"
  37. )
  38. set(DX_SAMPLE_SHADERS "${NIS_PATH}/NIS_Scaler.h"
  39. "${NIS_PATH}/NIS_Main.hlsl"
  40. )
  41. set(DX_SAMPLE_MEDIA "${SAMPLES_PATH}/media/images/1080.png"
  42. "${SAMPLES_PATH}/media/images/1440.png"
  43. "${SAMPLES_PATH}/media/images/1660.png"
  44. )
  45. set_source_files_properties(${DX_SAMPLE_SHADERS} PROPERTIES VS_COPY_TO_OUT_DIR TRUE)
  46. source_group("ui" FILES ${IMGUI_SRC})
  47. source_group("shaders" FILES ${DX_SAMPLE_SHADERS})
  48. add_executable(${PROJECT_NAME} ${DX_SAMPLE_SRC} ${IMGUI_SRC} ${DX_SAMPLE_HEADERS} ${DX_SAMPLE_SHADERS})
  49. target_include_directories (${PROJECT_NAME} PUBLIC include ${IMGUI_INCLUDE} ${NIS_PATH} ${SAMPLES_PATH}/common)
  50. add_custom_command(
  51. TARGET ${PROJECT_NAME} POST_BUILD
  52. COMMAND ${CMAKE_COMMAND} -E make_directory $<TARGET_FILE_DIR:${PROJECT_NAME}>/NIS
  53. COMMAND ${CMAKE_COMMAND} -E copy_directory ${NIS_PATH} $<TARGET_FILE_DIR:${PROJECT_NAME}>/NIS
  54. )
  55. add_custom_command(
  56. TARGET ${PROJECT_NAME} POST_BUILD
  57. COMMAND ${CMAKE_COMMAND} -E make_directory $<TARGET_FILE_DIR:${PROJECT_NAME}>/media/images
  58. COMMAND ${CMAKE_COMMAND} -E copy_directory ${SAMPLES_PATH}/media/images $<TARGET_FILE_DIR:${PROJECT_NAME}>/media/images
  59. )