]> Creatis software - cpPlugins.git/blobdiff - cmake/Functions.cmake
...
[cpPlugins.git] / cmake / Functions.cmake
index 4da395c6ad91dfb57a8adb4df2d52c2910076fca..01bd59873e40b33e8315640e78d3862f5398e03d 100644 (file)
@@ -59,13 +59,18 @@ ENDFUNCTION()
 
 ## -------------------------------------------------------------------------
 FUNCTION(
-  CreateLib
-  lib_name
-  lib_type
+  PrepareSourceFiles
+  out_sources_list
+  out_headers_list
+  out_headers_paths
   )
+SET(_config_extensions .c.in .cpp.in .cxx.in .h.in .hpp.in .hxx.in .ui.in)
+SET(_sources_extensions .c .cpp .cxx)
+SET(_headers_extensions .h .hpp .hxx)
+SET(_qt_ui_extensions .ui)
+SET(_demangler_extensions .d)
 
 ## -- Configure inputs
-SET(_config_extensions .c.in .cpp.in .cxx.in .h.in .hpp.in .hxx.in .ui.in)
 SET(_all_files)
 FOREACH(_file ${ARGN})
   GET_FILENAME_COMPONENT(_ext ${_file} EXT)
@@ -89,10 +94,6 @@ FOREACH(_file ${ARGN})
 ENDFOREACH(_file)
 
 ## -- Separate files
-SET(_sources_extensions .c .cpp .cxx)
-SET(_headers_extensions .h .hpp .hxx)
-SET(_qt_ui_extensions .ui)
-SET(_demangler_extensions .d)
 SET(_srcs)
 SET(_hdrs)
 SET(_qts)
@@ -164,8 +165,22 @@ FOREACH(_hdr ${_hdrs})
     LIST(APPEND _hdrs_paths ${_path})
   ENDIF(${_path_idx} EQUAL -1)
 ENDFOREACH(_hdr)
+
+SET(${out_sources_list} ${_srcs} PARENT_SCOPE)
+SET(${out_headers_list} ${_hdrs} PARENT_SCOPE)
+SET(${out_headers_paths} ${_hdrs_paths} PARENT_SCOPE)
+
+ENDFUNCTION()
+
+## -------------------------------------------------------------------------
+FUNCTION(
+  CreateLib
+  lib_name
+  lib_type
+  )
+PrepareSourceFiles(_srcs _hdrs _paths ${ARGN})
 INCLUDE_DIRECTORIES(
-  ${_hdrs_paths}
+  ${_paths}
   ${CMAKE_CURRENT_SOURCE_DIR}
   ${CMAKE_CURRENT_BINARY_DIR}
   )
@@ -179,7 +194,6 @@ IF(_srcs)
     STATIC_DEFINE ${lib_name}_BUILT_AS_STATIC
     )
 ENDIF(_srcs)
-
 ENDFUNCTION()
 
 ## -------------------------------------------------------------------------
@@ -296,4 +310,28 @@ CreateLib(${lib_name} SHARED ${_files})
 
 ENDFUNCTION()
 
+## -------------------------------------------------------------------------
+FUNCTION(
+  CompileAppFromDir
+  app_name
+  app_dir
+  )
+FILE(GLOB_RECURSE _files "${app_dir}/*")
+PrepareSourceFiles(_srcs _hdrs _paths ${_files} ${ARGN})
+INCLUDE_DIRECTORIES(
+  ${_paths}
+  ${CMAKE_CURRENT_SOURCE_DIR}
+  ${CMAKE_CURRENT_BINARY_DIR}
+  )
+IF(_srcs)
+  SET(_app_os_target)
+  IF(${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
+    SET(_app_os_target WIN32)
+  ELSEIF(${CMAKE_SYSTEM_NAME} STREQUAL "Darwin")
+    SET(_app_os_target MACOSX_BUNDLE)
+  ENDIF(${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
+  ADD_EXECUTABLE(${app_name} ${_app_os_target} ${_srcs} ${_hdrs})
+ENDIF(_srcs)
+ENDFUNCTION()
+
 ## eof - $RCSfile$