summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael R Sweet <michael.r.sweet@gmail.com>2005-02-06 00:18:19 +0000
committerMichael R Sweet <michael.r.sweet@gmail.com>2005-02-06 00:18:19 +0000
commit2816583b839c4006a94af61ac41c54de4d7caa2a (patch)
tree01745fc6e3873965e12e9c51adaee27578e8b886
parent1f2456132e1c3a75473dfea30d26c6cff8d8257c (diff)
Add new file for CMake.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@4027 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
-rw-r--r--CMake/FLTKUse.cmake68
1 files changed, 68 insertions, 0 deletions
diff --git a/CMake/FLTKUse.cmake b/CMake/FLTKUse.cmake
new file mode 100644
index 000000000..3512b5ef9
--- /dev/null
+++ b/CMake/FLTKUse.cmake
@@ -0,0 +1,68 @@
+IF(NOT FLTK11_FOUND)
+ MESSAGE(FATAL_ERROR "Something went wrong. You are including FLTKUse.cmake but FLTK was not found")
+ENDIF(NOT FLTK11_FOUND)
+
+# -------------------------------------------------------------
+# This macro automates wrapping of Fluid files
+# Specify the output variable name and the list of sources
+# The output variable can be directly added to the target.
+#
+# For example:
+# FLTK_WRAP_FLUID(CubeView_SRCS CubeViewUI.fl)
+# ADD_EXECUTABLE(CubeView CubeMain.cxx CubeView.cxx CubeView.h ${CubeView_SRCS})
+# -------------------------------------------------------------
+MACRO(FLTK_WRAP_FLUID VARIABLE)
+ FOREACH(src ${ARGN})
+ IF("${src}" MATCHES ".fl$")
+ GET_FILENAME_COMPONENT(fname ${src} NAME_WE)
+ GET_FILENAME_COMPONENT(fpath ${src} PATH)
+ GET_SOURCE_FILE_PROPERTY(gen ${src} GENERATED)
+ IF(gen)
+ SET(fluid_name "${src}")
+ ELSE(gen)
+ SET(fluid_name "${CMAKE_CURRENT_SOURCE_DIR}/${fpath}/${fname}.fl")
+ IF(NOT EXISTS "${fluid_name}")
+ SET(fluid_name "${CMAKE_CURRENT_BINARY_DIR}/${fpath}/${fname}.fl")
+ IF(NOT EXISTS "${fluid_name}")
+ SET(fluid_name "${fpath}/${fname}.fl")
+ IF(NOT EXISTS "${fluid_name}")
+ MESSAGE(SEND_ERROR "Cannot find Fluid source file: ${fpath}/${fname}.fl")
+ ENDIF(NOT EXISTS "${fluid_name}")
+ ENDIF(NOT EXISTS "${fluid_name}")
+ ENDIF(NOT EXISTS "${fluid_name}")
+ ENDIF(gen)
+ SET(cxx_name "${CMAKE_CURRENT_BINARY_DIR}/${fname}.cxx")
+ SET(h_name "${CMAKE_CURRENT_BINARY_DIR}/${fname}.h")
+ SET(${VARIABLE} "${${VARIABLE}};${cxx_name}")
+ ADD_CUSTOM_COMMAND(
+ OUTPUT ${cxx_name}
+ DEPENDS "${fluid_name}" "${FLUID_COMMAND}"
+ COMMAND ${FLUID_COMMAND}
+ ARGS -c ${fluid_name})
+ ADD_CUSTOM_COMMAND(
+ OUTPUT ${h_name}
+ DEPENDS "${fluid_name}" "${FLUID_COMMAND}"
+ COMMAND ${FLUID_COMMAND}
+ ARGS -c ${fluid_name})
+ ENDIF("${src}" MATCHES ".fl$")
+ ENDFOREACH(src)
+ENDMACRO(FLTK_WRAP_FLUID VARIABLE)
+
+
+# Make FLTK easier to use
+INCLUDE_DIRECTORIES(${FLTK_INCLUDE_DIRS})
+LINK_DIRECTORIES(${FLTK_LIBRARY_DIRS})
+
+# Load the compiler settings used for FLTK.
+IF(FLTK_BUILD_SETTINGS_FILE)
+ INCLUDE(CMakeImportBuildSettings)
+ CMAKE_IMPORT_BUILD_SETTINGS(${FLTK_BUILD_SETTINGS_FILE})
+ENDIF(FLTK_BUILD_SETTINGS_FILE)
+
+# Add compiler flags needed to use FLTK.
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${FLTK_REQUIRED_C_FLAGS}")
+SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${FLTK_REQUIRED_CXX_FLAGS}")
+SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${FLTK_REQUIRED_EXE_LINKER_FLAGS}")
+SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${FLTK_REQUIRED_SHARED_LINKER_FLAGS}")
+SET(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} ${FLTK_REQUIRED_MODULE_LINKER_FLAGS}")
+