package vtk: consolidate patch file and add tools target

merged compile tools patches into one patch file and added
a CompileTools target for compiling only the compile tools
during the native build
This commit is contained in:
Muellni 2011-10-31 09:44:38 +01:00
parent f8e628bfb8
commit e288002301
3 changed files with 84 additions and 68 deletions

View File

@ -53,3 +53,82 @@
ENDIF("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" GREATER 1.6)
# Make sure build occurs in proper order.
--- VTK/Utilities/vtkhdf5/src/CMakeLists.txt 2011-08-24 15:37:13.000000000 +0200
+++ VTK/Utilities/vtkhdf5/src/CMakeLists.txt 2011-10-30 00:13:16.798098058 +0200
@@ -572,34 +572,40 @@
# Setup the H5Detect utility which generates H5Tinit with platform
# specific type checks inside
#-----------------------------------------------------------------------------
-SET (CMD ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}${CFG_INIT}/H5detect${EXE_EXT})
-IF (XCODE)
- SET (CMD "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/\${CONFIGURATION}/H5detect")
-ENDIF (XCODE)
-ADD_EXECUTABLE (H5detect ${HDF5_SRC_DIR}/H5detect.c)
-IF (WIN32)
- TARGET_LINK_LIBRARIES (H5detect "ws2_32.lib")
-ENDIF (WIN32)
+IF(NOT CMAKE_CROSSCOMPILING)
+ ADD_EXECUTABLE (H5detect ${HDF5_SRC_DIR}/H5detect.c)
+ IF (WIN32)
+ TARGET_LINK_LIBRARIES (H5detect "ws2_32.lib")
+ ENDIF (WIN32)
+
+ EXPORT(TARGETS H5detect FILE ${EXPORT_EXECUTABLES_FILE} NAMESPACE "${EXPORT_EXECUTABLES_NAMESPACE}" APPEND)
+ IF(COMPILE_TOOLS_TARGET)
+ ADD_DEPENDENCIES(${COMPILE_TOOLS_TARGET} H5detect)
+ ENDIF(COMPILE_TOOLS_TARGET)
+ENDIF(NOT CMAKE_CROSSCOMPILING)
ADD_CUSTOM_COMMAND (
OUTPUT ${HDF5_BINARY_DIR}/H5Tinit.c
- COMMAND ${CMD}
+ COMMAND H5detect
ARGS > ${HDF5_BINARY_DIR}/H5Tinit.c
DEPENDS H5detect
)
-SET (CMDL ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}${CFG_INIT}/H5make_libsettings${EXE_EXT})
-IF (XCODE)
- SET (CMDL "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/\${CONFIGURATION}/H5make_libsettings")
-ENDIF (XCODE)
-ADD_EXECUTABLE (H5make_libsettings ${HDF5_SRC_DIR}/H5make_libsettings.c)
-IF (WIN32)
- TARGET_LINK_LIBRARIES (H5make_libsettings "ws2_32.lib")
-ENDIF (WIN32)
+IF(NOT CMAKE_CROSSCOMPILING)
+ ADD_EXECUTABLE (H5make_libsettings ${HDF5_SRC_DIR}/H5make_libsettings.c)
+ IF (WIN32)
+ TARGET_LINK_LIBRARIES (H5make_libsettings "ws2_32.lib")
+ ENDIF (WIN32)
+ EXPORT(TARGETS H5make_libsettings FILE ${EXPORT_EXECUTABLES_FILE} NAMESPACE "${EXPORT_EXECUTABLES_NAMESPACE}" APPEND)
+ IF(COMPILE_TOOLS_TARGET)
+ ADD_DEPENDENCIES(${COMPILE_TOOLS_TARGET} H5make_libsettings)
+ ENDIF(COMPILE_TOOLS_TARGET)
+ENDIF(NOT CMAKE_CROSSCOMPILING)
+
ADD_CUSTOM_COMMAND (
OUTPUT ${HDF5_BINARY_DIR}/H5lib_settings.c
- COMMAND ${CMDL}
+ COMMAND H5make_libsettings
ARGS > ${HDF5_BINARY_DIR}/H5lib_settings.c
DEPENDS H5make_libsettings
)
--- VTK/CMakeLists.txt 2011-08-24 15:37:07.000000000 +0200
+++ VTK/CMakeLists.txt 2011-10-31 09:12:59.451958504 +0100
@@ -42,8 +42,13 @@
FILE(WRITE "${EXPORT_EXECUTABLES_FILE}" "#generated by VTK, do not edit\n")
ENDIF(NOT EXPORT_EXECUTABLES_FILE)
+# Add a target for building only the compile tools
+ADD_CUSTOM_TARGET(CompileTools)
+SET(COMPILE_TOOLS_TARGET "CompileTools")
+
GET_PROPERTY(VTK_TARGET_SUPPORTS_SHARED_LIBS
GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS)
+
# Warn when using "old style" CMake install commands... But only when
# building VTK itself.

View File

@ -1,61 +0,0 @@
--- VTK/Utilities/vtkhdf5/src/CMakeLists.txt 2011-08-24 15:37:13.000000000 +0200
+++ VTK/Utilities/vtkhdf5/src/CMakeLists.txt 2011-10-30 00:13:16.798098058 +0200
@@ -572,34 +572,40 @@
# Setup the H5Detect utility which generates H5Tinit with platform
# specific type checks inside
#-----------------------------------------------------------------------------
-SET (CMD ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}${CFG_INIT}/H5detect${EXE_EXT})
-IF (XCODE)
- SET (CMD "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/\${CONFIGURATION}/H5detect")
-ENDIF (XCODE)
-ADD_EXECUTABLE (H5detect ${HDF5_SRC_DIR}/H5detect.c)
-IF (WIN32)
- TARGET_LINK_LIBRARIES (H5detect "ws2_32.lib")
-ENDIF (WIN32)
+IF(NOT CMAKE_CROSSCOMPILING)
+ ADD_EXECUTABLE (H5detect ${HDF5_SRC_DIR}/H5detect.c)
+ IF (WIN32)
+ TARGET_LINK_LIBRARIES (H5detect "ws2_32.lib")
+ ENDIF (WIN32)
+
+ EXPORT(TARGETS H5detect FILE ${EXPORT_EXECUTABLES_FILE} NAMESPACE "${EXPORT_EXECUTABLES_NAMESPACE}" APPEND)
+ IF(COMPILE_TOOLS_TARGET)
+ ADD_DEPENDENCIES(${COMPILE_TOOLS_TARGET} H5detect)
+ ENDIF(COMPILE_TOOLS_TARGET)
+ENDIF(NOT CMAKE_CROSSCOMPILING)
ADD_CUSTOM_COMMAND (
OUTPUT ${HDF5_BINARY_DIR}/H5Tinit.c
- COMMAND ${CMD}
+ COMMAND H5detect
ARGS > ${HDF5_BINARY_DIR}/H5Tinit.c
DEPENDS H5detect
)
-SET (CMDL ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}${CFG_INIT}/H5make_libsettings${EXE_EXT})
-IF (XCODE)
- SET (CMDL "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/\${CONFIGURATION}/H5make_libsettings")
-ENDIF (XCODE)
-ADD_EXECUTABLE (H5make_libsettings ${HDF5_SRC_DIR}/H5make_libsettings.c)
-IF (WIN32)
- TARGET_LINK_LIBRARIES (H5make_libsettings "ws2_32.lib")
-ENDIF (WIN32)
+IF(NOT CMAKE_CROSSCOMPILING)
+ ADD_EXECUTABLE (H5make_libsettings ${HDF5_SRC_DIR}/H5make_libsettings.c)
+ IF (WIN32)
+ TARGET_LINK_LIBRARIES (H5make_libsettings "ws2_32.lib")
+ ENDIF (WIN32)
+ EXPORT(TARGETS H5make_libsettings FILE ${EXPORT_EXECUTABLES_FILE} NAMESPACE "${EXPORT_EXECUTABLES_NAMESPACE}" APPEND)
+ IF(COMPILE_TOOLS_TARGET)
+ ADD_DEPENDENCIES(${COMPILE_TOOLS_TARGET} H5make_libsettings)
+ ENDIF(COMPILE_TOOLS_TARGET)
+ENDIF(NOT CMAKE_CROSSCOMPILING)
+
ADD_CUSTOM_COMMAND (
OUTPUT ${HDF5_BINARY_DIR}/H5lib_settings.c
- COMMAND ${CMDL}
+ COMMAND H5make_libsettings
ARGS > ${HDF5_BINARY_DIR}/H5lib_settings.c
DEPENDS H5make_libsettings
)

View File

@ -17,14 +17,12 @@ endef
define $(PKG)_BUILD
# first we need a native build for compile tools
# first we need a native build to create the compile tools
mkdir '$(1)/native_build'
cd '$(1)/native_build' && cmake \
-DCMAKE_INSTALL_PREFIX='$(PREFIX)/$(TARGET)'\
-DCMAKE_BUILD_TYPE='Release'\
..
# only the Utilities need to be built
$(MAKE) -C '$(1)/native_build/Utilities' -j '$(JOBS)' VERBOSE=1
cd '$(1)/native_build' && cmake -DCMAKE_BUILD_TYPE='Release' ..
# only the newly created CompileTools target need to be built
$(MAKE) -C '$(1)/native_build' -j '$(JOBS)' VERBOSE=1 CompileTools
# now for the cross compilation
mkdir '$(1)/cross_build'