Build specific sample only
[platform/core/uifw/dali-demo.git] / build / tizen / examples / CMakeLists.txt
index e84235c..ad3d815 100644 (file)
@@ -13,7 +13,20 @@ MACRO(SUBDIRLIST result curdir)
 ENDMACRO()
 SUBDIRLIST(SUBDIRS ${EXAMPLES_SRC_DIR})
 
-FOREACH(EXAMPLE ${SUBDIRS})
+SET(SCENE3D_DIR "scene3d")
+IF (NOT "${ENABLE_SCENE3D}" )
+  IF ( ${SCENE3D_DIR} IN_LIST SUBDIRS )
+    LIST( REMOVE_ITEM SUBDIRS ${SCENE3D_DIR} )
+  ENDIF()
+ENDIF()
+
+FIND_PROGRAM( SHADER_GENERATOR "dali-shader-generator" )
+IF( NOT SHADER_GENERATOR )
+  MESSAGE( FATAL_ERROR "dali-shader-generator not found!" )
+ENDIF()
+
+FUNCTION(INSTALL_EXAMPLES EXAMPLE)
+  SET(PARENT_CMAKE_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../")
   FILE(GLOB SRCS "${EXAMPLES_SRC_DIR}/${EXAMPLE}/*.cpp")
   SET(SRCS ${SRCS} "${ROOT_SRC_DIR}/shared/resources-location.cpp")
   IF(SHARED)
@@ -21,6 +34,27 @@ 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)
+ENDFUNCTION()
+
+IF( NOT BUILD_EXAMPLE_NAME )
+  FOREACH(EXAMPLE ${SUBDIRS})
+    INSTALL_EXAMPLES(${EXAMPLE})
+  ENDFOREACH(EXAMPLE)
+ELSE()
+  INSTALL_EXAMPLES(${BUILD_EXAMPLE_NAME})
+ENDIF()
+