CMake/CPack/BundleUtilities/Examples/Linux/VTK

From KitwarePublic
< CMake
Revision as of 03:04, 17 November 2010 by Daviddoria (talk | contribs) (Created page with "==VTKIncludeTest.cpp== <source lang="cmake"> #include <vtkMath.h> int main(int, char *[]) { double p0[3] = {0.0, 0.0, 0.0}; double p1[3] = {1.0, 1.0, 1.0}; double squar...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

VTKIncludeTest.cpp

<source lang="cmake">

  1. include <vtkMath.h>

int main(int, char *[]) {

 double p0[3] = {0.0, 0.0, 0.0};
 double p1[3] = {1.0, 1.0, 1.0};

 double squaredDistance = vtkMath::Distance2BetweenPoints(p0, p1);

 std::cout << "SquaredDistance = " << squaredDistance << std::endl;

 return EXIT_SUCCESS;

} </source>

CMakeLists.txt

<source lang="cmake"> PROJECT (VTKIncludeTest) cmake_minimum_required(VERSION 2.8)

FIND_PACKAGE(VTK REQUIRED) INCLUDE(${VTK_USE_FILE})

ADD_EXECUTABLE(VTKIncludeTest VTKIncludeTest.cpp) TARGET_LINK_LIBRARIES(VTKIncludeTest vtkHybrid)

  1. The installation commands start here

SET(plugin_dest_dir bin) SET(qtconf_dest_dir bin) SET(APPS "\${CMAKE_INSTALL_PREFIX}/bin/VTKIncludeTest")

  1. Install the application

INSTALL(TARGETS VTKIncludeTest

   BUNDLE DESTINATION . COMPONENT Runtime
   RUNTIME DESTINATION bin COMPONENT Runtime
   )
  1. Use BundleUtilities to get all other dependencies for the application to work.
  2. It takes a bundle or executable along with possible plugins and inspects it
  3. for dependencies. If they are not system dependencies, they are copied.
  1. directories to look for dependencies

SET(DIRS ${VTK_LIBRARY_DIRS})

  1. ./bin/libvtkHybrid.a
  1. Now the work of copying dependencies into the bundle/package
  2. The quotes are escaped and variables to use at install time have their $ escaped

INSTALL(CODE "

   file(GLOB_RECURSE QTPLUGINS
     \"\${CMAKE_INSTALL_PREFIX}/${plugin_dest_dir}/plugins/*${CMAKE_SHARED_LIBRARY_SUFFIX}\")
   include(BundleUtilities)
   fixup_bundle(\"${APPS}\" \"\${QTPLUGINS}\" \"${DIRS}\")
   " COMPONENT Runtime)


SET(CPACK_GENERATOR "DEB") SET(CPACK_DEBIAN_PACKAGE_MAINTAINER "David Doria") #required

include(CPack) </source>