]> Creatis software - crea.git/blobdiff - cmake/CREAMacro_FindAndUseWxWidgets.cmake
*** empty log message ***
[crea.git] / cmake / CREAMacro_FindAndUseWxWidgets.cmake
diff --git a/cmake/CREAMacro_FindAndUseWxWidgets.cmake b/cmake/CREAMacro_FindAndUseWxWidgets.cmake
new file mode 100644 (file)
index 0000000..cec6770
--- /dev/null
@@ -0,0 +1,106 @@
+#=======================================================================
+# Looks for WxWidgets
+#=======================================================================
+MACRO(CREA_FIND_WXWIDGETS)
+  IF(WIN32)
+    # Search WXWIDGETS
+    
+    #  WXWINDOWS_LIBRARY         = full path to the wxWindows library and linker flags on unix
+    #  CMAKE_WX_CXX_FLAGS        = compiler flags for building wxWindows 
+    #  WXWINDOWS_INCLUDE_PATH    = include path of wxWindows
+    SET(WXWINDOWS_USE_GL 1)
+    
+    #wxWidgets build related stuff
+    SET(WXW_USE_DEBUG ON)
+    SET(WXW_USE_UNICODE OFF)
+    SET(WXW_USE_SHARED ON)
+    SET(WXW_USE_UNIV OFF)
+    SET(WXW_USE_MONO OFF)
+    SET(WXW_FILE_VERSION "28")
+    SET(WXW_VERSION "2.8")
+    
+    #CMake Options
+    # Why forcing verbosity ?
+    # SET(CMAKE_VERBOSE_MAKEFILE TRUE)
+    
+    INCLUDE (${CREA_CMAKE_DIR}/FindWxWidgetsWin32.cmake)
+    #
+  
+  ELSE(WIN32)
+    IF(NOT wxWidgets_FOUND)
+    # CMake 2.6:
+    # technically those packages are not required 
+    # since one can still use the Motif/X11 version and not the gtk one:
+    FIND_PACKAGE(PkgConfig)
+    pkg_check_modules (GTK2 gtk+-2.0)
+    #MESSAGE("${GTK2_INCLUDE_DIRS}")
+    # Can I require all my user to have the gl lib on linux, even if they do not really need it...
+    SET(WXGLCANVASLIBS "gl")
+    # aui ?
+    SET(WXAUILIBS "aui")
+    # LG : These options should be set by the user at top level of crea
+    FIND_PACKAGE(wxWidgets COMPONENTS base core adv 
+      ${WXAUILIBS}
+      ${WXGLCANVASLIBS})
+    #
+    IF(wxWidgets_FOUND)
+      MESSAGE ( STATUS "=======================================")
+      MESSAGE ( STATUS "Looking for wxWidgets... found ${wxWidgets_CONFIG_EXECUTABLE}")
+    ENDIF(wxWidgets_FOUND)
+    ENDIF(NOT wxWidgets_FOUND)
+  ENDIF(WIN32)
+  
+
+
+ENDMACRO(CREA_FIND_WXWIDGETS)
+#=======================================================================
+
+#=======================================================================
+MACRO(CREA_USE_WXWIDGETS)
+  # Preprocessor settings
+  CREA_DEFINE( USE_WXWIDGETS )
+  CREA_DEFINE( _USE_WXWIDGETS_ )
+  #
+  IF(WIN32)
+    # Clean ?
+    SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}${WXWIDGETS_CXX_FLAGS}")
+    SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS}${WXWIDGETS_EXE_LINKER_FLAGS}")
+    #
+    ADD_DEFINITIONS( ${WXWIDGETS_DEFINITIONS}  )
+    #
+    INCLUDE_DIRECTORIES(${WXWIDGETS_INCLUDE_DIR})
+    LINK_DIRECTORIES( ${WXWIDGETS_LINK_DIRECTORIES} )
+    SET(WXWIDGETS_LIBRARIES
+      ${WXWIDGETS_LIBRARIES}     
+      ${WXWIDGETS_LIBRARIES} wxmsw28d_aui      
+      debug msvcrtd
+      debug msvcprtd
+      optimized msvcrt
+      optimized msvcprt
+      )
+  ELSE(WIN32)
+    # GTK2
+    INCLUDE_DIRECTORIES(${GTK2_INCLUDE_DIRS})
+    LINK_DIRECTORIES(${GTK2_LIBRARY_DIRS})
+    LINK_LIBRARIES(${GTK2_LIBRARIES})
+    # WX
+
+
+#    INCLUDE( ${GTK_USE_FILE} )
+    INCLUDE( ${wxWidgets_USE_FILE} )
+    MARK_AS_ADVANCED(wxWidgets_CONFIG_EXECUTABLE)
+    SET(WXWIDGETS_LIBRARIES
+      ${GTK2_LIBRARIES}
+      #${GTK_LIBRARIES}
+      ${wxWidgets_LIBRARIES}
+      )
+  ENDIF(WIN32)
+ENDMACRO(CREA_USE_WXWIDGETS)
+#=======================================================================
+
+#=======================================================================
+MACRO(CREA_FIND_AND_USE_WXWIDGETS)
+  CREA_FIND_WXWIDGETS()
+  CREA_USE_WXWIDGETS()
+ENDMACRO(CREA_FIND_AND_USE_WXWIDGETS)
+#=======================================================================