diff options
Diffstat (limited to 'share/cmake-3.10/Modules/UsewxWidgets.cmake')
-rw-r--r-- | share/cmake-3.10/Modules/UsewxWidgets.cmake | 100 |
1 files changed, 100 insertions, 0 deletions
diff --git a/share/cmake-3.10/Modules/UsewxWidgets.cmake b/share/cmake-3.10/Modules/UsewxWidgets.cmake new file mode 100644 index 0000000..a50d03d --- /dev/null +++ b/share/cmake-3.10/Modules/UsewxWidgets.cmake @@ -0,0 +1,100 @@ +# Distributed under the OSI-approved BSD 3-Clause License. See accompanying +# file Copyright.txt or https://cmake.org/licensing for details. + +#.rst: +# UsewxWidgets +# ------------ +# +# Convenience include for using wxWidgets library. +# +# Determines if wxWidgets was FOUND and sets the appropriate libs, +# incdirs, flags, etc. INCLUDE_DIRECTORIES and LINK_DIRECTORIES are +# called. +# +# USAGE +# +# :: +# +# # Note that for MinGW users the order of libs is important! +# find_package(wxWidgets REQUIRED net gl core base) +# include(${wxWidgets_USE_FILE}) +# # and for each of your dependent executable/library targets: +# target_link_libraries(<YourTarget> ${wxWidgets_LIBRARIES}) +# +# +# +# DEPRECATED +# +# :: +# +# LINK_LIBRARIES is not called in favor of adding dependencies per target. +# +# +# +# AUTHOR +# +# :: +# +# Jan Woetzel <jw -at- mip.informatik.uni-kiel.de> + +# debug message and logging. +# comment these out for distribution +if (NOT LOGFILE ) + # set(LOGFILE "${PROJECT_BINARY_DIR}/CMakeOutput.log") +endif () +macro(MSG _MSG) + # file(APPEND ${LOGFILE} "${CMAKE_CURRENT_LIST_FILE}(${CMAKE_CURRENT_LIST_LINE}): ${_MSG}\n") + # message(STATUS "${CMAKE_CURRENT_LIST_FILE}(${CMAKE_CURRENT_LIST_LINE}): ${_MSG}") +endmacro() + + +MSG("wxWidgets_FOUND=${wxWidgets_FOUND}") +if (wxWidgets_FOUND) + if (wxWidgets_INCLUDE_DIRS) + if(wxWidgets_INCLUDE_DIRS_NO_SYSTEM) + include_directories(${wxWidgets_INCLUDE_DIRS}) + else() + include_directories(SYSTEM ${wxWidgets_INCLUDE_DIRS}) + endif() + MSG("wxWidgets_INCLUDE_DIRS=${wxWidgets_INCLUDE_DIRS}") + endif() + + if (wxWidgets_LIBRARY_DIRS) + link_directories(${wxWidgets_LIBRARY_DIRS}) + MSG("wxWidgets_LIBRARY_DIRS=${wxWidgets_LIBRARY_DIRS}") + endif() + + if (wxWidgets_DEFINITIONS) + set_property(DIRECTORY APPEND + PROPERTY COMPILE_DEFINITIONS ${wxWidgets_DEFINITIONS}) + MSG("wxWidgets_DEFINITIONS=${wxWidgets_DEFINITIONS}") + endif() + + if (wxWidgets_DEFINITIONS_DEBUG) + set_property(DIRECTORY APPEND + PROPERTY COMPILE_DEFINITIONS_DEBUG ${wxWidgets_DEFINITIONS_DEBUG}) + MSG("wxWidgets_DEFINITIONS_DEBUG=${wxWidgets_DEFINITIONS_DEBUG}") + endif() + + if (wxWidgets_CXX_FLAGS) + # Flags are expected to be a string here, not a list. + string(REPLACE ";" " " wxWidgets_CXX_FLAGS_str "${wxWidgets_CXX_FLAGS}") + string(APPEND CMAKE_CXX_FLAGS " ${wxWidgets_CXX_FLAGS_str}") + MSG("wxWidgets_CXX_FLAGS=${wxWidgets_CXX_FLAGS_str}") + unset(wxWidgets_CXX_FLAGS_str) + endif() + + # DEPRECATED JW + # just for backward compatibility: add deps to all targets + # library projects better use advanced find_package(wxWidgets) directly. + #if(wxWidgets_LIBRARIES) + # link_libraries(${wxWidgets_LIBRARIES}) + # # BUG: str too long: MSG("wxWidgets_LIBRARIES=${wxWidgets_LIBRARIES}") + # if(LOGFILE) + # file(APPEND ${LOGFILE} "${CMAKE_CURRENT_LIST_FILE}(${CMAKE_CURRENT_LIST_LINE}): ${wxWidgets_LIBRARIES}\n") + # endif() + #endif() + +else () + message("wxWidgets requested but not found.") +endif() |