DO NOT REPLY TO THIS MESSAGE. INSTEAD, POST ANY RESPONSES TO THE LINK BELOW.
[STR New]
Link: http://www.fltk.org/str.php?L2317
Version: 1.3-current
When cross-compiling with CMake the build should use a native fluid and the
backwards-compatibility links should depend on the host system, not the
target.
The attached patch file fixes these issues.
Link: http://www.fltk.org/str.php?L2317
Version: 1.3-current
diff -Naur fltk-1.3.x-r7037.orig/CMakeLists.txt fltk-1.3.x-r7037/CMakeLists.txt
--- fltk-1.3.x-r7037.orig/CMakeLists.txt 2010-02-15 11:01:33.000000000
-0500
+++ fltk-1.3.x-r7037/CMakeLists.txt 2010-02-15 10:57:53.000000000 -0500
@@ -27,7 +27,7 @@
#
PROJECT(FLTK)
-CMAKE_MINIMUM_REQUIRED(VERSION 2.0)
+CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
# The FLTK version
SET(FLTK_VERSION_MAJOR "1")
@@ -223,7 +223,7 @@
ELSE(FLTK_USE_SYSTEM_ZLIB)
MARK_AS_ADVANCED(ZLIB_INCLUDE_DIR)
MARK_AS_ADVANCED(ZLIB_LIBRARY)
- SUBDIRS(zlib)
+ ADD_SUBDIRECTORY(zlib)
SET(HAVE_LIBZ 1)
SET(FLTK_ZLIB_LIBRARIES fltk_zlib)
SET(FLTK_LIBRARIES "${FLTK_LIBRARIES};fltk_zlib")
@@ -242,7 +242,7 @@
ELSE(FLTK_USE_SYSTEM_JPEG)
MARK_AS_ADVANCED(JPEG_INCLUDE_DIR)
MARK_AS_ADVANCED(JPEG_LIBRARY)
- SUBDIRS(jpeg)
+ ADD_SUBDIRECTORY(jpeg)
SET(HAVE_LIBJPEG 1)
SET(FLTK_JPEG_LIBRARIES fltk_jpeg)
SET(FLTK_LIBRARIES "${FLTK_LIBRARIES};fltk_jpeg")
@@ -264,7 +264,7 @@
ELSE(FLTK_USE_SYSTEM_PNG)
MARK_AS_ADVANCED(PNG_INCLUDE_DIR)
MARK_AS_ADVANCED(PNG_LIBRARY)
- SUBDIRS(png)
+ ADD_SUBDIRECTORY(png)
SET(HAVE_LIBPNG 1)
SET(HAVE_PNG_H 1)
SET(FLTK_PNG_LIBRARIES fltk_png)
@@ -282,93 +282,54 @@
CONFIGURE_FILE(${FLTK_SOURCE_DIR}/configh.cmake.in
${FLTK_BINARY_DIR}/config.h)
-# On unix create symlinks for backward compatibility
-SET(FLTK_CREATE_SYMLINKS 1)
-IF(WIN32)
- IF(NOT UNIX)
- SET(FLTK_CREATE_SYMLINKS 0)
- ENDIF(NOT UNIX)
-ENDIF(WIN32)
-
-MACRO(SAFE_CREATE_SYMLINK SOURCE DESTINATION)
- IF(EXISTS "${DESTINATION}")
- ELSE(EXISTS "${DESTINATION}")
- MESSAGE(STATUS "Create symlink from: \"${SOURCE}\" to \"${DESTINATION}\"")
- # The quoting here does seems unnatural, but this is to prevent bug in
CMake
- EXEC_PROGRAM(ln ARGS
- "-s \"${SOURCE}\" \"${DESTINATION}\"" OUTPUT_VARIABLE ln_output
- RETURN_VALUE ln_retval)
- IF("${ln_retval}" GREATER 0)
- MESSAGE(FATAL_ERROR "Problem creatin symlink from \"${SOURCE}\" to
\"${DESTINATION}\":\n${ln_output}")
- ENDIF("${ln_retval}" GREATER 0)
- ENDIF(EXISTS "${DESTINATION}")
-ENDMACRO(SAFE_CREATE_SYMLINK SOURCE DESTINATION)
-
# If this is out-of-source build, then copy FL directory
-FILE(GLOB FLTK_HEADER_FILES "${FLTK_SOURCE_DIR}/FL/*.[hHr]")
+FILE(GLOB FLTK_HEADER_FILES ${FLTK_SOURCE_DIR}/FL/*.[hHr])
FOREACH(file ${FLTK_HEADER_FILES})
- GET_FILENAME_COMPONENT(ext "${file}" EXT)
- GET_FILENAME_COMPONENT(namewe "${file}" NAME_WE)
- GET_FILENAME_COMPONENT(name "${file}" NAME)
- STRING(COMPARE EQUAL "${ext}" ".h" lower_case_h)
- STRING(COMPARE EQUAL "${ext}" ".H" upper_case_h)
- IF(lower_case_h OR upper_case_h)
- SET(outfile_h "${FLTK_BINARY_DIR}/FL/${namewe}.h")
- SET(outfile_H "${FLTK_BINARY_DIR}/FL/${namewe}.H")
- CONFIGURE_FILE("${file}" "${outfile_H}" COPYONLY IMMEDIATE)
- CONFIGURE_FILE("${file}" "${outfile_h}" COPYONLY IMMEDIATE)
-# IF(FLTK_CREATE_SYMLINKS)
-# SAFE_CREATE_SYMLINK("${outfile_H}" "${outfile_h}")
-# ENDIF(FLTK_CREATE_SYMLINKS)
- ELSE(lower_case_h OR upper_case_h)
- STRING(COMPARE EQUAL "${ext}" ".r" mac_resource_file)
- IF(mac_resource_file)
- SET(outfile "${FLTK_BINARY_DIR}/FL/${name}")
- CONFIGURE_FILE("${file}" "${outfile}" COPYONLY IMMEDIATE)
- ENDIF(mac_resource_file)
- ENDIF(lower_case_h OR upper_case_h)
+ GET_FILENAME_COMPONENT(name ${file} NAME)
+ CONFIGURE_FILE(${file} ${FLTK_BINARY_DIR}/FL/${name} COPYONLY IMMEDIATE)
ENDFOREACH(file)
-IF(FLTK_CREATE_SYMLINKS)
- SAFE_CREATE_SYMLINK(
- "${FLTK_BINARY_DIR}/FL"
- "${FLTK_BINARY_DIR}/Fl")
-
- SAFE_CREATE_SYMLINK(
- "${FLTK_BINARY_DIR}/FL/gl.H"
- "${FLTK_BINARY_DIR}/FL/gl.h")
-
- # Create the symlinks
- FILE(READ ${FLTK_SOURCE_DIR}/fltk.list.in SYMLINKSFILE)
- STRING(REGEX MATCHALL "(l 0000 root sys .includedir/)([^(\n)])+"
- SYMLINKS ${SYMLINKSFILE})
- FOREACH(var ${SYMLINKS} )
- IF("${var}" MATCHES ".H")
- STRING(REGEX MATCH "(/F)([^(\n)])+" tmp ${var})
- STRING(REGEX MATCH "(/F)([^( )])+" in ${tmp})
- STRING(REGEX MATCH "( )([^(\n)])+" out ${tmp})
- STRING(REGEX REPLACE "( )" "" out ${out})
- SAFE_CREATE_SYMLINK("${FLTK_BINARY_DIR}/FL/${out}"
"${FLTK_BINARY_DIR}/${in}")
- ENDIF("${var}" MATCHES ".H")
- ENDFOREACH(var)
-ENDIF(FLTK_CREATE_SYMLINKS)
-
-# Set the fluid executable path
-UTILITY_SOURCE(FLUID_COMMAND fluid fluid fluid.cxx)
-SET(FLUID_COMMAND "${FLUID_COMMAND}" CACHE INTERNAL "" FORCE)
+# On unix create symlinks for backward compatibility
+IF(CMAKE_HOST_UNIX)
+ IF(NOT EXISTS ${FLTK_BINARY_DIR}/Fl)
+ EXECUTE_PROCESS(COMMAND ln -s FL Fl
+ WORKING_DIRECTORY ${FLTK_BINARY_DIR})
+ ENDIF(NOT EXISTS ${FLTK_BINARY_DIR}/Fl)
+
+ FILE(GLOB FLTK_HEADER_FILES ${FLTK_BINARY_DIR}/FL/*.H)
+ FOREACH(file ${FLTK_HEADER_FILES})
+ GET_FILENAME_COMPONENT(nameWE ${file} NAME_WE)
+ IF(NOT EXISTS ${FLTK_BINARY_DIR}/FL/${nameWE}.h)
+ EXECUTE_PROCESS(COMMAND ln -s ${nameWE}.H ${nameWE}.h
+ WORKING_DIRECTORY ${FLTK_BINARY_DIR}/FL)
+ ENDIF()
+ ENDFOREACH(file)
+ENDIF(CMAKE_HOST_UNIX)
# Include header files in fltk binary tree
INCLUDE_DIRECTORIES(${FLTK_BINARY_DIR})
-# Do the build of fltk libraries and fluid
-SUBDIRS(src)
-SUBDIRS(fluid)
+FIND_FILE(FLUID_PATH
+ NAMES fluid fluid.exe
+ PATHS ENV PATH
+ NO_CMAKE_FIND_ROOT_PATH
+ )
+# Set the fluid executable path
+IF(CMAKE_CROSSCOMPILING)
+ ADD_EXECUTABLE(fluid IMPORTED)
+ SET_TARGET_PROPERTIES(fluid
+ PROPERTIES IMPORTED_LOCATION ${FLUID_PATH} )
+ENDIF(CMAKE_CROSSCOMPILING)
+
+# Do the build of fltk libraries and fluid
+ADD_SUBDIRECTORY(src)
+ADD_SUBDIRECTORY(fluid)
# Set an option to build the examples and testing
OPTION(BUILD_EXAMPLES "Build the tests" ON)
IF(BUILD_EXAMPLES)
- SUBDIRS(test)
+ ADD_SUBDIRECTORY(test)
ENDIF(BUILD_EXAMPLES)
OPTION(BUILD_TESTING "Build testing of FLTK" ON)
@@ -392,7 +353,7 @@
SET(CXX "${CMAKE_CXX_COMPILER}")
# For build tree usage
-SET(FLTK_FLUID_COMMAND "${FLUID_COMMAND}")
+SET(FLTK_FLUID_COMMAND fluid)
SET(FLTK_LIBRARY_DEPENDS_FILE ${FLTK_BINARY_DIR}/FLTKLibraryDepends.cmake)
SET(FLTK_EXECUTABLE_DIRS ${EXECUTABLE_OUTPUT_PATH})
SET(FLTK_LIBRARY_DIRS ${LIBRARY_OUTPUT_PATH})
@@ -433,11 +394,23 @@
CONFIGURE_FILE("${FLTK_SOURCE_DIR}/fltk-config.in"
"${FLTK_BINARY_DIR}/CMake/fltk-config" @ONLY IMMEDIATE)
-INSTALL_FILES(/include/FL FILES ${FLTK_HEADER_FILES})
-INSTALL_FILES(/lib/FLTK-${FLTK_VERSION} FILES
"${FLTK_SOURCE_DIR}/CMake/FLTKUse.cmake")
-INSTALL_FILES(/lib/FLTK-${FLTK_VERSION} FILES
"${FLTK_BINARY_DIR}/FLTKBuildSettings.cmake")
-INSTALL_FILES(/lib/FLTK-${FLTK_VERSION} FILES
"${FLTK_BINARY_DIR}/FLTKLibraryDepends.cmake")
-INSTALL_FILES(/lib/FLTK-${FLTK_VERSION} FILES
"${FLTK_BINARY_DIR}/CMake/FLTKConfig.cmake")
+INSTALL(DIRECTORY ${FLTK_BINARY_DIR}/FL
+ DESTINATION include USE_SOURCE_PERMISSIONS)
+INSTALL(DIRECTORY ${FLTK_BINARY_DIR}/Fl OPTIONAL
+ DESTINATION include USE_SOURCE_PERMISSIONS)
+
+IF(NOT CMAKE_CROSSCOMPILING)
+ INSTALL(PROGRAMS ${EXECUTABLE_OUTPUT_PATH}/fluid DESTINATION bin)
+ENDIF(NOT CMAKE_CROSSCOMPILING)
+
+INSTALL(PROGRAMS ${FLTK_BINARY_DIR}/CMake/fltk-config DESTINATION bin)
+INSTALL(PROGRAMS
+ ${FLTK_SOURCE_DIR}/CMake/FLTKUse.cmake
+ ${FLTK_BINARY_DIR}/FLTKBuildSettings.cmake
+ ${FLTK_BINARY_DIR}/FLTKLibraryDepends.cmake
+ ${FLTK_BINARY_DIR}/CMake/FLTKConfig.cmake
+ DESTINATION lib/FLTK-${FLTK_VERSION}
+ )
#
# End of "$Id: CMakeLists.txt 7012 2010-01-16 14:18:18Z AlbrechtS $".
diff -Naur fltk-1.3.x-r7037.orig/fluid/CMakeLists.txt
fltk-1.3.x-r7037/fluid/CMakeLists.txt
--- fltk-1.3.x-r7037.orig/fluid/CMakeLists.txt 2005-08-06 01:02:56.000000000
-0400
+++ fltk-1.3.x-r7037/fluid/CMakeLists.txt 2010-02-15 10:22:55.000000000
-0500
@@ -1,3 +1,5 @@
+IF(NOT CMAKE_CROSSCOMPILING)
+
SET(CPPFILES
CodeEditor.cxx
Fl_Function_Type.cxx
@@ -28,3 +30,4 @@
TARGET_LINK_LIBRARIES(fluid fltk_gl)
ENDIF(OPENGL_FOUND)
+ENDIF(NOT CMAKE_CROSSCOMPILING)
diff -Naur fltk-1.3.x-r7037.orig/test/CMakeLists.txt
fltk-1.3.x-r7037/test/CMakeLists.txt
--- fltk-1.3.x-r7037.orig/test/CMakeLists.txt 2010-01-15 11:07:19.000000000
-0500
+++ fltk-1.3.x-r7037/test/CMakeLists.txt 2010-02-15 10:22:55.000000000
-0500
@@ -5,19 +5,13 @@
GET_FILENAME_COMPONENT(fname ${src} NAME_WE)
SET(fluid_name
"${CMAKE_CURRENT_SOURCE_DIR}/${fname}.fl")
SET(cxx_name "${CMAKE_CURRENT_BINARY_DIR}/${fname}.cxx")
- SET(h_name "${CMAKE_CURRENT_BINARY_DIR}/${fname}.cxx")
SET(srcs ${srcs} "${cxx_name}")
ADD_CUSTOM_COMMAND(
OUTPUT ${cxx_name}
- DEPENDS "${fluid_name}" "${FLUID_COMMAND}"
- COMMAND ${FLUID_COMMAND}
+ DEPENDS ${fluid_name} fluid
+ COMMAND fluid
ARGS -c ${fluid_name})
- ADD_CUSTOM_COMMAND(
- OUTPUT ${h_name}
- DEPENDS "${fluid_name}" "${FLUID_COMMAND}"
- COMMAND ${FLUID_COMMAND}
- ARGS -c ${fluid_name})
- ELSE("${src}" MATCHES ".fl$")
+ ELSE()
SET(srcs ${srcs} ${src})
ENDIF("${src}" MATCHES ".fl$")
ENDFOREACH(src)
_______________________________________________
fltk-bugs mailing list
[email protected]
http://lists.easysw.com/mailman/listinfo/fltk-bugs