Build specific sample only
[platform/core/uifw/dali-demo.git] / build / tizen / examples / CMakeLists.txt
index 7fa03fe..ad3d815 100644 (file)
@@ -13,9 +13,48 @@ 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")
-  ADD_EXECUTABLE(${EXAMPLE}.example ${SRCS})
-  TARGET_LINK_LIBRARIES(${EXAMPLE}.example ${REQUIRED_PKGS_LDFLAGS} -pie)
+  SET(SRCS ${SRCS} "${ROOT_SRC_DIR}/shared/resources-location.cpp")
+  IF(SHARED)
+    ADD_LIBRARY(${EXAMPLE}.example SHARED ${SRCS})
+  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()
+