Use dali-shader-generator to generate the shaders
[platform/core/uifw/dali-demo.git] / build / tizen / examples / CMakeLists.txt
index 6476710..1692226 100644 (file)
@@ -20,16 +20,13 @@ IF (NOT "${ENABLE_SCENE_LOADER}" )
   ENDIF()
 ENDIF()
 
+FIND_PROGRAM( SHADER_GENERATOR "dali-shader-generator" )
+IF( NOT SHADER_GENERATOR )
+  MESSAGE( FATAL_ERROR "dali-shader-generator not found!" )
+ENDIF()
+
 FOREACH(EXAMPLE ${SUBDIRS})
-  # Generate source files for shaders
-  SET(SHADER_SOURCE_DIR "${EXAMPLES_SRC_DIR}/${EXAMPLE}/shaders/")
-  SET(SHADER_GENERATED_DIR "${EXAMPLES_SRC_DIR}/${EXAMPLE}/generated/")
   SET(PARENT_CMAKE_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../")
-  IF (EXISTS ${SHADER_SOURCE_DIR})
-    EXECUTE_PROCESS( COMMAND bash -c "${PARENT_CMAKE_SOURCE_DIR}/shader-generator.sh ${SHADER_SOURCE_DIR} ${SHADER_GENERATED_DIR} --skip")
-    SET_PROPERTY( DIRECTORY APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES
-                "${SHADER_GENERATED_DIR}" )
-  ENDIF()
   FILE(GLOB SRCS "${EXAMPLES_SRC_DIR}/${EXAMPLE}/*.cpp")
   SET(SRCS ${SRCS} "${ROOT_SRC_DIR}/shared/resources-location.cpp")
   IF(SHARED)
@@ -37,6 +34,18 @@ FOREACH(EXAMPLE ${SUBDIRS})
   ELSE()
     ADD_EXECUTABLE(${EXAMPLE}.example ${SRCS})
   ENDIF()
+
+  # Generate source files for shaders
+  SET(SHADER_SOURCE_DIR "${EXAMPLES_SRC_DIR}/${EXAMPLE}/shaders/")
+  IF (EXISTS ${SHADER_SOURCE_DIR})
+    SET(SHADER_GENERATED_DIR "${EXAMPLES_SRC_DIR}/${EXAMPLE}/generated/")
+    ADD_CUSTOM_TARGET(${EXAMPLE}-generate-shaders
+                      COMMAND ${SHADER_GENERATOR} --skip ${SHADER_SOURCE_DIR} ${SHADER_GENERATED_DIR})
+    SET_PROPERTY(DIRECTORY APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES
+                 "${SHADER_GENERATED_DIR}")
+    ADD_DEPENDENCIES(${EXAMPLE}.example ${EXAMPLE}-generate-shaders)
+  ENDIF()
+
   TARGET_LINK_LIBRARIES(${EXAMPLE}.example ${REQUIRED_LIBS})
   INSTALL(TARGETS ${EXAMPLE}.example DESTINATION ${BINDIR})
 ENDFOREACH(EXAMPLE)