]> Creatis software - crea.git/blobdiff - cmake/CREAMacro_AddExecutable.cmake
export build settings : deprecated function for cmake2.8 DEPREDCATED FUNCTION FOR...
[crea.git] / cmake / CREAMacro_AddExecutable.cmake
index 34779b08069586894ea0f9e5335db932d0387cbb..2b81fd7c11958d68e35c9a0162c196d390a717ee 100644 (file)
@@ -1,3 +1,11 @@
+#Generates the cmake commands to build and install the executable EXE_NAME.
+# ${EXE_NAME}_SOURCES        must contain the list of files to compile 
+#                            to build the executable.
+# ${EXE_NAME}_LINK_LIBRARIES must contain the list of libraries to link with
+#
+# On Windows:
+# if ${EXE_NAME}_HAS_GUI is set to TRUE then a Win32 application is generated
+# if ${EXE_NAME}_CONSOLE is set to TRUE then the application will have a console attached.
 MACRO(CREA_ADD_EXECUTABLE EXE_NAME)
 
   IF(CREA_VERBOSE_CMAKE)
@@ -5,14 +13,25 @@ MACRO(CREA_ADD_EXECUTABLE EXE_NAME)
     MESSAGE(STATUS "Configuring executable ${EXE_NAME}")
     MESSAGE(STATUS "   Sources  : ${${EXE_NAME}_SOURCES}")
     MESSAGE(STATUS "   Link libs: ${${EXE_NAME}_LINK_LIBRARIES}")
+    IF(WIN32)
+      MESSAGE(STATUS "   Win32 app: ${${EXE_NAME}_HAS_GUI}")
+      MESSAGE(STATUS "   Console  : ${${EXE_NAME}_CONSOLE}")
+    ENDIF(WIN32)
     MESSAGE(STATUS "===============================================")
   ENDIF(CREA_VERBOSE_CMAKE)
 
-  IF(WIN32)
-    ADD_EXECUTABLE(${EXE_NAME} WIN32 ${${EXE_NAME}_SOURCES})  
-  ELSE(WIN32)
-    ADD_EXECUTABLE(${EXE_NAME} ${${EXE_NAME}_SOURCES})
-  ENDIF(WIN32)
+  IF(WIN32 AND ${EXE_NAME}_HAS_GUI )
+    ADD_EXECUTABLE(${EXE_NAME} WIN32 ${${EXE_NAME}_SOURCES})
+    IF( ${${EXE_NAME}_CONSOLE} )
+      SET_TARGET_PROPERTIES(${EXE_NAME} PROPERTIES LINK_FLAGS /subsystem:console )
+    ENDIF( ${${EXE_NAME}_CONSOLE} )
+  ELSE(WIN32 AND ${EXE_NAME}_HAS_GUI )
+    IF(${EXE_NAME}_HAS_GUI AND APPLE)
+      ADD_EXECUTABLE(${EXE_NAME} MACOSX_BUNDLE ${${EXE_NAME}_SOURCES})
+    ELSE(${EXE_NAME}_HAS_GUI AND APPLE)
+      ADD_EXECUTABLE(${EXE_NAME}  ${${EXE_NAME}_SOURCES})
+    ENDIF(${EXE_NAME}_HAS_GUI AND APPLE)
+  ENDIF(WIN32 AND ${EXE_NAME}_HAS_GUI )
   
   TARGET_LINK_LIBRARIES(${EXE_NAME} ${${EXE_NAME}_LINK_LIBRARIES})