]> ToastFreeware Gitweb - gregoa/zavai.git/blobdiff - gtkfisheyelist/CMakeLists.txt
Make a library with gtkfisheyelist and split main as a demo
[gregoa/zavai.git] / gtkfisheyelist / CMakeLists.txt
index 6de6e7ee6d927f7dd5b804f9193fee82ffdc8de4..5549f3ab851ffd88203c1e7017943c60c844e395 100644 (file)
@@ -9,17 +9,27 @@ pkg_check_modules(GTK REQUIRED gtk+-2.0)
 
 find_program(VALAC valac)
 
-file(GLOB fevala *.vala)
-string(REGEX REPLACE "^.+/(.+)\\.vala$" "${gtkfisheyelist_BINARY_DIR}/\\1.c" fesrc ${fevala})
-string(REGEX REPLACE "^.+/(.+)\\.vala$" "${gtkfisheyelist_BINARY_DIR}/\\1.h" fehdr ${fevala})
+file(GLOB fevala gtkfisheye*.vala)
+file(RELATIVE_PATH fesrc ${gtkfisheyelist_SOURCE_DIR} ${fevala})
+string(REGEX REPLACE "\\.vala$" ".c" fesrc ${fesrc})
+
+file(GLOB demovala demo*.vala)
+file(RELATIVE_PATH demosrc ${gtkfisheyelist_SOURCE_DIR} ${demovala})
+string(REGEX REPLACE "\\.vala$" ".c" demosrc ${demosrc})
 
 add_custom_command(
     DEPENDS ${fevala}
-    OUTPUT ${fesrc} ${fehdr}
-    COMMAND ${VALAC} ${VFLAGS} ${fevala}
+    OUTPUT ${fesrc} gtkfisheyelist.h gtkfisheyelist.vapi
+    COMMAND ${VALAC} ${VFLAGS} -H gtkfisheyelist.h --library=gtkfisheyelist ${fevala}
 )
 
-add_definitions(-Wall -Werror ${GTK_CFLAGS})
+add_custom_command(
+    DEPENDS ${demovala}
+    OUTPUT ${demosrc} ${demohdr}
+    COMMAND ${VALAC} ${VFLAGS} --pkg=gtkfisheyelist --vapidir=${gtkfisheyelist_BINARY_DIR} ${demovala}
+)
+
+add_definitions(-Wall -Werror ${GTK_CFLAGS} -I${gtkfisheyelist_BINARY_DIR})
 link_libraries(${GTK_LDFLAGS})
 
 set_source_files_properties(${fesrc} PROPERTIES GENERATED 1)
@@ -30,6 +40,9 @@ add_library(gtkfisheyelist-static STATIC ${fesrc})
 set_target_properties(gtkfisheyelist PROPERTIES VERSION ${gtkfisheyelist_version} SOVERSION 0 CLEAN_DIRECT_OUTPUT 1)
 set_target_properties(gtkfisheyelist-static PROPERTIES VERSION ${gtkfisheyelist_version} SOVERSION 0 OUTPUT_NAME "gtkfisheyelist" CLEAN_DIRECT_OUTPUT 1)
 
+add_executable(gtkfisheyedemo ${demosrc})
+target_link_libraries(gtkfisheyedemo gtkfisheyelist-static)
+
 set(prefix "${CMAKE_INSTALL_PREFIX}")
 set(exec_prefix "${prefix}/bin")
 set(libdir "${prefix}/lib")