CMAKE AN INTRODUCTION
|
|
|
- Baldric James
- 10 years ago
- Views:
Transcription
1 CMAKE AN INTRODUCTION Graduiertenkolleg EMS Robert Jakob
2 GOAL Source Executable I don t You care
3 GOAL interface description generated.h generated.cpp foo.h foo.cpp bar.cpp fb.cpp You care Executable internet.lib internet.h pde-solver.lib, 2.0 < Version <= 2.1.3
4 GOAL interface description generated.h generated.cpp Win exe foo.h foo.cpp bar.cpp fb.cpp You care Linux exe Mac exe Debug Release Installer internet.lib internet.h Library pde-solver.lib, 2.0 < Version <= 2.1.3
5 HELP?! GOAL interface description generated.h generated.cpp Win exe foo.h foo.cpp bar.cpp fb.cpp You care Linux exe Mac exe Debug Release Installer internet.lib internet.h Library pde-solver.lib, 2.0 < Version <= 2.1.3
6 SOLUTIONS GNU Build system (aka Autotools)./configure && make && make install qmake Qt by Nokia s build system Scons Python-based build system cmake cross-plattform make system
7 WHAT IS IT? CMake is a build-process management tool Platform independent Supports various output formats Dependencies Libraries
8 WORKFLOW Configuration CMakeLists.txt cmake Makefile Files
9 WORKFLOW Configuration CMakeLists.txt cmake Project files Makefile Files
10 WORKFLOW Configuration CMakeLists.txt cmake Project files Makefile Files
11 MAKEFILES (IDEA) Makefiles execute commands depending on some conditions Makefiles consist of targets, dependencies, and commands: target: {dependency} {cmd} foo.exe: foo.c another_target compile --input=foo.c --output=foo.exe make foo.exe last_change (foo.exe) < last_change(foo.c): compile last_change (foo.exe) => last_change(foo.c): nothing
12 THE BASICS
13 EXAMPLE PROJECT #include <stdio.h> #include <string.h> #include <bzlib.h> #include "adder.h" int main(int argc, char* argv[]) { int bzerror = 0; char buffer[51]; int result; FILE *tbz2file = fopen(argv[1], "rb"); memset(&buffer,0,51); BZFILE *bz = BZ2_bzReadOpen(&bzError, tbz2file, 0, 0, 0, 0); BZ2_bzRead(&bzError, bz, buffer, 50); printf("%50s\n", buffer); result = add(buffer); printf("result: %d\n", result); fclose(tbz2file); } return 0;
14 EXAMPLE PROJECT #include <stdio.h> #include <string.h> #include <bzlib.h> #include "adder.h" Dependencies int main(int argc, char* argv[]) { int bzerror = 0; char buffer[51]; int result; FILE *tbz2file = fopen(argv[1], "rb"); memset(&buffer,0,51); Starting point of program BZFILE *bz = BZ2_bzReadOpen(&bzError, tbz2file, 0, 0, 0, 0); BZ2_bzRead(&bzError, bz, buffer, 50); printf("%50s\n", buffer); Program code result = add(buffer); printf("result: %d\n", result); fclose(tbz2file); } return 0;
15 MANUAL COMPILATION Compilation command line: gcc -g -c adder.c produces adder.o gcc -g -c main.c produces main.o Linking gcc -g adder.o main.o -lbz2 produces a.out You don t want to run all this steps manually
16 DEPENDENCIES Main.c depends on adder.h Change adder.h means recompilation of main.c And linking of all object files
17 ABOUT DIRECTORIES Good directory structure build-debug build-release CMakeLists.txt src adder.c adder.h main.c tests test.txt.bz2
18 CMAKELISTS.TXT project(mygitness) cmake_minimum_required(version 2.6) add_definitions(-wall) include_directories(${cmake_current_binary_dir}) set(source src/main.c src/adder.c) add_executable(cmakeexample ${SOURCE}) Script execution find_package (BZip2) include_directories(${bzip_include_dirs}) target_link_libraries (cmakeexample ${BZIP2_LIBRARIES})
19 CMAKELISTS.TXT project(mygitness) cmake_minimum_required(version 2.6) Preamble add_definitions(-wall) include_directories(${cmake_current_binary_dir}) set(source src/main.c src/adder.c) add_executable(cmakeexample ${SOURCE}) find_package (BZip2) include_directories(${bzip_include_dirs}) target_link_libraries (cmakeexample ${BZIP2_LIBRARIES}) Source file definitions Defining targets Libraries to link to
20 COMMANDS Basic syntax command(args...) Project definition project (name [CXX] [C] [JAVA]) Setting a variable set(variable 2) Using a variable ${VARIABLE}
21 FLOW CONTROL Conditionals if (FOO) # comments else (FOO) # comments endif (FOO) If, else, and endif need argument! (may be empty) FOO is true if it is 1,ON, YES, TRUE, Y
22 CONDITIONAL if(var) if(n1 IS_NEWER_THAN n2) if(not var) if(var MATCHES regex) if(var AND var) if(1 LESS 3) if(var OR var) if(foo STRLESS BAR) if(defined var) if(exists filename) if(exists dirname)
23 LOOPS / MESSAGES set(src adder.c main.c) message( Printing all source files: ) if(not DEFINED SRC) message (FATAL_ERROR No sources defined ) endif () foreach (file ${SRC}) message(${file}) endforeach () message( Done printing all source files ) There is also a while loop
24 TARGETS Defining a new target of type executable add_executable(foo.exe ${SRC}) Defining a new target of type library add_library(foo STATIC foo1.c foo2.c) add_library(foo SHARED foo1.c foo2.c) Defining an arbitrary target add_custom_target(...)
25 INCLUDE DIRECTORIES Add additional include directories include_directories(include_dir) Add the output build directory (e.g. generated files in Qt) include_directories(${cmake_current_binary_dir}) Can be called multiple times and appends to the include dirs.
26 LIBRARIES Linking to libraries is simple target_link_libraries(foo path_to_lib1 path_to_lib2) How to get the path to the library?
27 FINDING LIBRARIES Looking for the TCL Library find_library (TCL_LIBRARY NAMES tcl tcl84 tcl83 tcl82 tcl80 PATHS /usr/lib /usr/local/lib) if (TCL_LIBRARY) target_link_library(fooexe ${TCL_LIBRARY}) endif ()
28 PREDEFINED MODULES ALSA Armadillo ASPELL AVIFile BISON BLAS Boost Bullet BZip2 CABLE Coin3D CUDA Cups CURL Curses CVS CxxTest Cygwin Dart DCMTK DevIL Doxygen EXPAT FLEX FLTK2 FLTK Freetype GCCXML GDAL Gettext GIF Git GLU GLUT Gnuplot GnuTLS GTest GTK2 GTK HDF5 HSPELL HTMLHelp ImageMagick ITK Jasper Java JNI JPEG KDE3 KDE4 LAPACK LATEX LibArchive LibXml2 LibXslt Lua50 Lua51 Matlab MFC Motif MPEG2 MPEG MPI OpenAL OpenGL OpenMP OpenSceneGraph OpenSSL OpenThreads osganimation osg osgdb osg_functions osgfx osgga osgintrospection osgmanipulator osgparticle osgproducer osgshadow osgsim osgterrain osgtext osgutil osgviewer osgvolume osgwidget PackageHandleStandard Args PackageMessage Perl PerlLibs PHP4 PhysFS Pike PkgConfig PNG PostgreSQL Producer Protobuf PythonInterp PythonLibs QJSON Qt3 Qt4 Qt QuickTime RTI Ruby SDL SDL_image SDL_mixer SDL_net SDL_sound SDL_ttf SelfPackers Squish Subversion SWIG TCL Tclsh TclStub Threads TIFF UnixCommands VTK Wget Wish wxwidgets wxwindows X11 XMLRPC ZLIB
29 USE PREDEFINED MODULES Predefined find -modules search for the libraries and define variables # BZIP2_FOUND - system has BZip2 # BZIP2_INCLUDE_DIR - the BZip2 include directory # BZIP2_LIBRARIES - Link these to use BZip2 # BZIP2_NEED_PREFIX - this is set if the functions are prefixed with BZ2_find_package (BZip2) include_directories(${bzip_include_dirs}) target_link_libraries (cmakeexample ${BZIP2_LIBRARIES})
30 CMAKELISTS.TXT project(mygitness) cmake_minimum_required(version 2.6) add_definitions(-wall) include_directories(${cmake_current_binary_dir}) set(source src/main.c src/adder.c) add_executable(cmakeexample ${SOURCE}) find_package (BZip2) include_directories(${bzip_include_dirs}) target_link_libraries (cmakeexample ${BZIP2_LIBRARIES})
31 BUILD PROCESS. $ cd build-debug/./build-debug $ cmake../ -- The C compiler identification is GNU -- The CXX compiler identification is GNU -- Check for working C compiler: /usr/bin/gcc -- Check for working C compiler: /usr/bin/gcc -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working CXX compiler: /usr/bin/c++ -- Check for working CXX compiler: /usr/bin/c++ -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Found BZip2: /usr/lib/libbz2.so -- Looking for BZ2_bzCompressInit in /usr/lib/libbz2.so -- Looking for BZ2_bzCompressInit in /usr/lib/libbz2.so - found -- Configuring done -- Generating done -- Build files have been written to: /home/jakobro/projects/cmake-example-app/build-debug./build-debug $ make Scanning dependencies of target cmakeexample [ 50%] Building C object CMakeFiles/cmakeexample.dir/src/main.c.o [100%] Building C object CMakeFiles/cmakeexample.dir/src/adder.c.o Linking C executable cmakeexample [100%] Built target cmakeexample
32 BUILD PROCESS./build-debug $ change../src/main.c./build-debug $ make Scanning dependencies of target cmakeexample [ 50%] Building C object CMakeFiles/cmakeexample.dir/src/main.c.o Linking C executable cmakeexample [100%] Built target cmakeexample
33 BUILD PROCESS When do we have to call cmake again? Normally, no call to cmake necessary Not even if we change something inside./build-debug $ change../cmakelists.txt./build-debug $ make -- Configuring done -- Generating done -- Build files have been written to: /home/jakobro/projects/cmake-example-app/build-debug [ 50%] Building C object CMakeFiles/cmakeexample.dir/src/main.c.o [100%] Building C object CMakeFiles/cmakeexample.dir/src/adder.c.o Linking C executable cmakeexample [100%] Built target cmakeexample
34 BUILD PROCESS cmake has an internal cache (build-debug/cmakecache.txt) If changing cached variables, makefile is not recreated! Solution:./build-debug $ make rebuild_cache Running CMake to regenerate build system Configuring done -- Generating done -- Build files have been written to: build-debug
35 PROBLEMS If you want to see what cmake really does cmake --debug-output If you want to see the commands make runs make VERBOSE=1
36 ERROR SOLUTION CHAIN Error when running make Try: make clean && make make rebuild_cache Try: rm -R build-debug/ Try: mkdir build-debug && cmake../ Error when running cmake cmake --debug-output../ cmake --trace../ (This will get you lots of output)
37 ADVANCED STUFF
38 SUBCONFIGS If you have submodules and want them to have an extra config build-debug build-release CMakeLists.txt // toplevel config src adder.c adder.h main.c mymathmodule CMakeLists.txt // subconfig math.cpp
39 SUBCONFIGS Two possibilities: Subconfig creates its own executable/library which is used by toplevel config Only describes source and header files and toplevel adds them to its build process
40 TOPLEVEL CONFIGURATION set(source ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp ) add_subdirectory("${project_source_dir}/mymathmodule") add_executable(fooexec ${SOURCE} ${HEADERS})
41 SUBCONFIG set(source ${SOURCE} ${CMAKE_CURRENT_SOURCE_DIR}/file1.cpp ${CMAKE_CURRENT_SOURCE_DIR}/file2.cpp PARENT_SCOPE ) set(headers ${HEADERS} ${CMAKE_CURRENT_SOURCE_DIR}/file1.hpp ${CMAKE_CURRENT_SOURCE_DIR}/file2.hpp PARENT_SCOPE )
42 DEBUG/RELEASE BUILDS Either give the cmake process a variable: cmake -DCMAKE_BUILD_TYPE=Debug cmake -DCMAKE_BUILD_TYPE=Release or specify it in the config SET(CMAKE_BUILD_TYPE Debug)
43 OPTIONS User-definable options building optional parts of the application using special math library Shows up in GUI option(build_special_part Build special part OFF) $ cmake -DBUILD_SPECIAL_PART=ON
44 CONFIGURE FILE Preprocessor definitions from cmake to Code? #ifdef BUILD_SPECIAL_PART... #endif
45 CONFIGURE FILE Copy file from in_file to out_file and replace all variables with their values: configure_file( {$PROJECT_SOURCE_DIR}/configure.h.in {$PROJECT_BINARY_DIR}/configure.h ) Configure.h.in: #cmakedefine BUILD_SPECIAL_PART Configure.h: #define BUILD_SPECIAL_PART or /* #define BUILD_SPECIAL_PART */ Access to values of
46 BEYOND CMAKE CPack Installer creation CTest Large test framework LaTeX
47 REFERENCES Martin and Hoffmann: Mastering CMake (Available in our library) CMake useful variables FAQ The CMake documentation
48 Questions?
Introduction CMake Language Specific cases. CMake Tutorial. How to setup your C/C++ projects? Luis Díaz Más. http://plagatux.es.
How to setup your C/C++ projects? http://plagatux.es November, 2012 Outline Introduction 1 Introduction 2 Concepts Scripting CPack 3 Qt libraries Cross-compiling Introduction System for configuring C/C++
CMPT 373 Software Development Methods. Building Software. Nick Sumner [email protected] Some materials from Shlomi Fish & Kitware
CMPT 373 Software Development Methods Building Software Nick Sumner [email protected] Some materials from Shlomi Fish & Kitware What does it mean to build software? How many of you know how to build software?
Mastering CMake. Sixth Edition. Bill Martin & Hoffman. Ken. Andy Cedilnik, David Cole, Marcus Hanwell, Julien Jomier, Brad King, Robert Maynard,
Mastering CMake Sixth Edition Ken Bill Martin & Hoffman With contributions from: Andy Cedilnik, David Cole, Marcus Hanwell, Julien Jomier, Brad King, Robert Maynard, Alex Neundorf Published by Kitware
Generating Visual Studio Project Files
Table of Contents 1. Overview... 1 2. About this tutorial... 1 3. Setting up the pure::variants project... 1 4. Setting up the feature model... 3 5. Setting up the family model... 3 6. Setting up the transformation...
CMake/CTest/CDash OSCON 2009
CMake/CTest/CDash OSCON 2009 Open Source Tools to build, test, and install software Bill Hoffman [email protected] Overview Introduce myself and Kitware Automated Testing About CMake Building with
Installing OpenVSP on Windows 7
ASDL, Georgia Institue of Technology August 2012 Table of Contents 1. Introduction... 1 2. Setting up Windows Line-Mode... 1 3. Preparation for OpenVSP... 2 3.1. Create an OpenVSP Folder... 2 3.2. Install
Supported platforms & compilers Required software Where to download the packages Geant4 toolkit installation (release 9.6)
Supported platforms & compilers Required software Where to download the packages Geant4 toolkit installation (release 9.6) Configuring the environment manually Using CMake CLHEP full version installation
Andreas Burghart 6 October 2014 v1.0
Yocto Qt Application Development Andreas Burghart 6 October 2014 Contents 1.0 Introduction... 3 1.1 Qt for Embedded Linux... 3 1.2 Outline... 4 1.3 Assumptions... 5 1.4 Corrections... 5 1.5 Version...
How to Write a Simple Makefile
Chapter 1 CHAPTER 1 How to Write a Simple Makefile The mechanics of programming usually follow a fairly simple routine of editing source files, compiling the source into an executable form, and debugging
A Cross Platform Development Workflow for C/C++ Applications.
The Third International Conference on Software Engineering Advances A Cross Platform Development Workflow for C/C++ Applications. Martin Wojtczyk and Alois Knoll Department of Informatics Robotics and
Building Software Systems. Multi-module C Programs. Example Multi-module C Program. Example Multi-module C Program
Building Software Systems Multi-module C Programs Software systems need to be built / re-built during the development phase if distributed in source code form (change,compile,test,repeat) (assists portability)
Why this lecture exists ITK Lecture 12: Open Source & Cross Platform Software Development
Why this lecture exists ITK Lecture 12: Open Source & Cross Platform Software Development Methods in Image Analysis CMU Robotics Institute 16-725 U. Pitt Bioengineering 2630 Spring Term, 2006 Successfully
GTk+ and GTkGLExt Build Process for Windows 32- bit
SUNY Geneseo June 15, 2010 GTk+ and GTkGLExt Build Process for Windows 32- bit Using Minimal GNU for Windows (MinGW) and Minimal System (MSYS) Author Advisor : Hieu Quang Tran : Professor Doug Baldwin
Lazy OpenCV installation and use with Visual Studio
Lazy OpenCV installation and use with Visual Studio Overview This tutorial will walk you through: How to install OpenCV on Windows, both: The pre-built version (useful if you won t be modifying the OpenCV
CSC230 Getting Starting in C. Tyler Bletsch
CSC230 Getting Starting in C Tyler Bletsch What is C? The language of UNIX Procedural language (no classes) Low-level access to memory Easy to map to machine language Not much run-time stuff needed Surprisingly
Surface and Volumetric Data Rendering and Visualisation
Surface and Volumetric Data Rendering and Visualisation THE Qt TOOLKIT Department of Information Engineering Faculty of Engineering University of Brescia Via Branze, 38 25231 Brescia - ITALY 1 What is
TNM093 Practical Data Visualization and Virtual Reality Laboratory Platform
October 6, 2015 1 Introduction The laboratory exercises in this course are to be conducted in an environment that might not be familiar to many of you. It is based on open source software. We use an open
[PRAKTISCHE ASPEKTE DER INFORMATIK SS 2014]
2014 Institut für Computergraphik, TU Braunschweig Pablo Bauszat [PRAKTISCHE ASPEKTE DER INFORMATIK SS 2014] All elemental steps that will get you started for your new life as a computer science programmer.
Introduction to Linux and Cluster Basics for the CCR General Computing Cluster
Introduction to Linux and Cluster Basics for the CCR General Computing Cluster Cynthia Cornelius Center for Computational Research University at Buffalo, SUNY 701 Ellicott St Buffalo, NY 14203 Phone: 716-881-8959
PetaLinux SDK User Guide. Application Development Guide
PetaLinux SDK User Guide Application Development Guide Notice of Disclaimer The information disclosed to you hereunder (the "Materials") is provided solely for the selection and use of Xilinx products.
Setting Up a CLucene and PostgreSQL Federation
Federated Desktop and File Server Search with libferris Ben Martin Abstract How to federate CLucene personal document indexes with PostgreSQL/TSearch2. The libferris project has two major goals: mounting
CS 2112 Lab: Version Control
29 September 1 October, 2014 Version Control What is Version Control? You re emailing your project back and forth with your partner. An hour before the deadline, you and your partner both find different
A Crash Course on UNIX
A Crash Course on UNIX UNIX is an "operating system". Interface between user and data stored on computer. A Windows-style interface is not required. Many flavors of UNIX (and windows interfaces). Solaris,
OHJ-1860: Software systems seminar: Used tools and mechanisms in Open Source projects
OHJ-1860: Software systems seminar: Used tools and mechanisms in Open Source projects Heikki Orsila 2007-03-07 This document may be used and distributed under GNU Free Documentation
C Programming Review & Productivity Tools
Review & Productivity Tools Giovanni Agosta Piattaforme Software per la Rete Modulo 2 Outline Preliminaries 1 Preliminaries 2 Function Pointers Variadic Functions 3 Build Automation Code Versioning 4 Preliminaries
GR A universal framework for visualization applications
Mitglied der Helmholtz-Gemeinschaft GR A universal framework for visualization applications 26. April 2012 73. Koordinierungstreffen J. Heinen GR Layer Structure Fortran C / C++ Objective-C Python Ruby...
Documentation Installation of the PDR code
Documentation Installation of the PDR code Franck Le Petit mardi 30 décembre 2008 Requirements Requirements depend on the way the code is run and on the version of the code. To install locally the Meudon
Software documentation systems
Software documentation systems Basic introduction to various user-oriented and developer-oriented software documentation systems. Ondrej Holotnak Ondrej Jombik Software documentation systems: Basic introduction
Code Estimation Tools Directions for a Services Engagement
Code Estimation Tools Directions for a Services Engagement Summary Black Duck software provides two tools to calculate size, number, and category of files in a code base. This information is necessary
Introduction to Python
Introduction to Python Sophia Bethany Coban Problem Solving By Computer March 26, 2014 Introduction to Python Python is a general-purpose, high-level programming language. It offers readable codes, and
Chapter 1: Getting Started
Chapter 1: Getting Started Every journey begins with a single step, and in ours it's getting to the point where you can compile, link, run, and debug C++ programs. This depends on what operating system
How To Port A Program To Dynamic C (C) (C-Based) (Program) (For A Non Portable Program) (Un Portable) (Permanent) (Non Portable) C-Based (Programs) (Powerpoint)
TN203 Porting a Program to Dynamic C Introduction Dynamic C has a number of improvements and differences compared to many other C compiler systems. This application note gives instructions and suggestions
Brent A. Perdue. July 15, 2009
Title Page Object-Oriented Programming, Writing Classes, and Creating Libraries and Applications Brent A. Perdue ROOT @ TUNL July 15, 2009 B. A. Perdue (TUNL) OOP, Classes, Libraries, Applications July
Internet Payment Gateway
Internet Payment Gateway Swig API Developer Guide (PHP, Perl and C++) Copyright 2008-2009 FIS Australasia ABN: 069 393 406. All rights reserved. Table of Contents Overview...4 Disclaimer...4 Confidentiality...4
Source Code Review Using Static Analysis Tools
Source Code Review Using Static Analysis Tools July-August 05 Author: Stavros Moiras Supervisor(s): Stefan Lüders Aimilios Tsouvelekakis CERN openlab Summer Student Report 05 Abstract Many teams at CERN,
Code::Block manual. for CS101x course. Department of Computer Science and Engineering Indian Institute of Technology - Bombay Mumbai - 400076.
Code::Block manual for CS101x course Department of Computer Science and Engineering Indian Institute of Technology - Bombay Mumbai - 400076. April 9, 2014 Contents 1 Introduction 1 1.1 Code::Blocks...........................................
RTI Monitoring Library Getting Started Guide
RTI Monitoring Library Getting Started Guide Version 5.1.0 2011-2013 Real-Time Innovations, Inc. All rights reserved. Printed in U.S.A. First printing. December 2013. Trademarks Real-Time Innovations,
An Incomplete C++ Primer. University of Wyoming MA 5310
An Incomplete C++ Primer University of Wyoming MA 5310 Professor Craig C. Douglas http://www.mgnet.org/~douglas/classes/na-sc/notes/c++primer.pdf C++ is a legacy programming language, as is other languages
Main Bullet #1 Main Bullet #2 Main Bullet #3
Main Bullet #1 Main Bullet #2 Main Bullet #3 : a bag of chips or all that? :A highlevelcrossplatformpowerfullyfunapplication andorsmallusefultooldevelopmentlanguage Why? Main Bullet #1 Main Bullet Vas
Professional. SlickEdif. John Hurst IC..T...L. i 1 8 О 7» \ WILEY \ Wiley Publishing, Inc.
Professional SlickEdif John Hurst IC..T...L i 1 8 О 7» \ WILEY \! 2 0 0 7 " > Wiley Publishing, Inc. Acknowledgments Introduction xiii xxv Part I: Getting Started with SiickEdit Chapter 1: Introducing
Version Control with Subversion
Version Control with Subversion Introduction Wouldn t you like to have a time machine? Software developers already have one! it is called version control Version control (aka Revision Control System or
UNICORE UFTPD server UNICORE UFTPD SERVER. UNICORE Team
UNICORE UFTPD server UNICORE UFTPD SERVER UNICORE Team Document Version: 1.0.0 Component Version: 2.3.2 Date: 14 09 2015 UNICORE UFTPD server Contents 1 UNICORE UFTP 1 1.1 UFTP features...................................
Eclipse.org CDT and Cygwin: A Tutorial on Installation and Functionality
Eclipse.org CDT and Cygwin: A Tutorial on Installation and Functionality Christopher T. S. Allen Department of Computer Science and Statistics University of Rhode Island - Undergraduate Abstract The purpose
OpenWBEM Getting Started Guide. Author: Dan Nuffer Last update: 12/09/04
OpenWBEM Getting Started Guide Author: Dan Nuffer Last update: 12/09/04 Table of Contents OpenWBEM Getting Started Guide...1 1. OpenWBEM Overview & Concepts...3 Genesis...3 Overview...3 Features...3 2.
Opencv examples on Kinect
Opencv examples on Kinect We are using Opencv to work on Kinect's RGB output. Cvdemo.c, an opencv example to run with kinect, available easily. We faced some issues in compiling it with gcc, so we used
Running the shell. Tcl/Tk demo. Tcl stuff. Starting Tcl/Tk. If-then-else
Running the shell Tcl/Tk demo Brian Toby Tcl shell = /usr/bin/tclsh (tclsh.exe) Tcl/Tk shell = /usr/bin/wish (wish.exe) As usually distributed requires many extra files Here: combined distribution as one
Neutron Science Visualization Software
Mitglied der Helmholtz-Gemeinschaft Neutron Science Visualization Software 1. September 2011 69. Koordinierungstreffen J. Heinen Contents ü Visualization Software Requirements in Neutron Science ü Available
Virtuozzo Virtualization SDK
Virtuozzo Virtualization SDK Programmer's Guide February 18, 2016 Copyright 1999-2016 Parallels IP Holdings GmbH and its affiliates. All rights reserved. Parallels IP Holdings GmbH Vordergasse 59 8200
Introduction. Created by Richard Bell 10/29/2014
Introduction GNU Radio is open source software that provides built in modules for standard tasks of a wireless communications system. Within the GNU Radio framework is gnuradio-companion, which is a GUI
CSE 374 Programming Concepts & Tools. Laura Campbell (Thanks to Hal Perkins) Winter 2014 Lecture 16 Version control and svn
CSE 374 Programming Concepts & Tools Laura Campbell (Thanks to Hal Perkins) Winter 2014 Lecture 16 Version control and svn Where we are Learning tools and concepts relevant to multi-file, multi-person,
Using Buildroot for real projects
Embedded Linux Conference Europe 2011 Using Buildroot for real projects Thomas Petazzoni Free Electrons [email protected] Free Electrons. Embedded Linux development, consulting, training
Table of Contents. The RCS MINI HOWTO
Table of Contents The RCS MINI HOWTO...1 Robert Kiesling...1 1. Overview of RCS...1 2. System requirements...1 3. Compiling RCS from Source...1 4. Creating and maintaining archives...1 5. ci(1) and co(1)...1
Working with HPC and HTC Apps. Abhinav Thota Research Technologies Indiana University
Working with HPC and HTC Apps Abhinav Thota Research Technologies Indiana University Outline What are HPC apps? Working with typical HPC apps Compilers - Optimizations and libraries Installation Modules
To connect to the cluster, simply use a SSH or SFTP client to connect to:
RIT Computer Engineering Cluster The RIT Computer Engineering cluster contains 12 computers for parallel programming using MPI. One computer, cluster-head.ce.rit.edu, serves as the master controller or
Using EDA Databases: Milkyway & OpenAccess
Using EDA Databases: Milkyway & OpenAccess Enabling and Using Scripting Languages with Milkyway and OpenAccess Don Amundson Khosro Khakzadi 2006 LSI Logic Corporation 1 Outline History Choice Of Scripting
A Conceptual Map of Open Source Software for Image Processing
A Conceptual Map of Open Source Software for Image Processing Mr. John Stastny SPAWAR Systems Center, Pacific Phone: 619-553-4564 Email: [email protected] Mr. Bryan Bagnall SPAWAR Systems Center, Pacific
Image Acquisition Toolbox Adaptor Kit User's Guide
Image Acquisition Toolbox Adaptor Kit User's Guide R2015b How to Contact MathWorks Latest news: www.mathworks.com Sales and services: www.mathworks.com/sales_and_services User community: www.mathworks.com/matlabcentral
Embedded Software Development
Linköpings Tekniska Högskola Institutionen för Datavetanskap (IDA), Software and Systems (SaS) TDDI11, Embedded Software 2010-04-22 Embedded Software Development Host and Target Machine Typical embedded
CS 103 Lab Linux and Virtual Machines
1 Introduction In this lab you will login to your Linux VM and write your first C/C++ program, compile it, and then execute it. 2 What you will learn In this lab you will learn the basic commands and navigation
Dalhousie University CSCI 2132 Software Development Winter 2015 Lab 7, March 11
Dalhousie University CSCI 2132 Software Development Winter 2015 Lab 7, March 11 In this lab, you will first learn how to use pointers to print memory addresses of variables. After that, you will learn
CSCE 665: Lab Basics. Virtual Machine. Guofei Gu
CSCE 665: Lab Basics Guofei Gu Virtual Machine Virtual Machine: a so?ware implementacon of a programmable machine(client), where the so?ware implementacon is constrained within another computer(host) at
ESPResSo Summer School 2012
ESPResSo Summer School 2012 Introduction to Tcl Pedro A. Sánchez Institute for Computational Physics Allmandring 3 D-70569 Stuttgart Germany http://www.icp.uni-stuttgart.de 2/26 Outline History, Characteristics,
Installing FEAR on Windows, Linux, and Mac Systems
Installing FEAR on Windows, Linux, and Mac Systems Paul W. Wilson Department of Economics and School of Computing Clemson University Clemson, South Carolina 29634 1309, USA email: [email protected] www:
MatrixSSL Getting Started
MatrixSSL Getting Started TABLE OF CONTENTS 1 OVERVIEW... 3 1.1 Who is this Document For?... 3 2 COMPILING AND TESTING MATRIXSSL... 4 2.1 POSIX Platforms using Makefiles... 4 2.1.1 Preparation... 4 2.1.2
MySQL Connector/C++ Developer Guide
MySQL Connector/C++ Developer Guide Abstract This manual describes how to install and configure MySQL Connector/C++, the C++ interface for communicating with MySQL servers, and how to use it to develop
OpenWalnut An Open-Source Visualization System
An Open-Source Visualization System 1 Alexander Wiebel 3 Mario Hlawitschka 2 Gerik Scheuermann 1 1 Abteilung für Bild- und Signalverarbeitung, Institut für Informatik, Universität Leipzig, Germany 2 Institute
Version Control with Svn, Git and git-svn. Kate Hedstrom ARSC, UAF
1 Version Control with Svn, Git and git-svn Kate Hedstrom ARSC, UAF 2 Version Control Software System for managing source files For groups of people working on the same code When you need to get back last
Creating OpenGL applications that use GLUT
Licenciatura em Engenharia Informática e de Computadores Computação Gráfica Creating OpenGL applications that use GLUT Short guide to creating OpenGL applications in Windows and Mac OSX Contents Obtaining
Software Development Tools for Embedded Systems. Hesen Zhang
Software Development Tools for Embedded Systems Hesen Zhang What Are Tools? a handy tool makes a handy man What Are Software Development Tools? Outline Debug tools GDB practice Debug Agent Design Debugging
Buildroot Workshop. Libre Software Meeting 2012. Thomas Petazzoni Free Electrons [email protected]
Libre Software Meeting 2012 Buildroot Workshop Thomas Petazzoni Free Electrons [email protected] Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and
Installing GD Graphics Library on Mac OS X Server 10.5.x for 64- and 32-bit CPUs
Installing GD Graphics Library on Mac OS X Server 10.5.x for 64- and 32-bit CPUs 1. - Introduction 2. - Requirements 3. - Getting and installing libjpeg 4. - Installing the GD Graphics Library 5. - Caveats
ASCII Encoding. The char Type. Manipulating Characters. Manipulating Characters
The char Type ASCII Encoding The C char type stores small integers. It is usually 8 bits. char variables guaranteed to be able to hold integers 0.. +127. char variables mostly used to store characters
Overview. Lecture 1: an introduction to CUDA. Hardware view. Hardware view. hardware view software view CUDA programming
Overview Lecture 1: an introduction to CUDA Mike Giles [email protected] hardware view software view Oxford University Mathematical Institute Oxford e-research Centre Lecture 1 p. 1 Lecture 1 p.
APPLICATIONS OF LINUX-BASED QT-CUDA PARALLEL ARCHITECTURE
APPLICATIONS OF LINUX-BASED QT-CUDA PARALLEL ARCHITECTURE Tuyou Peng 1, Jun Peng 2 1 Electronics and information Technology Department Jiangmen Polytechnic, Jiangmen, Guangdong, China, [email protected]
Chapter 13 - The Preprocessor
Chapter 13 - The Preprocessor Outline 13.1 Introduction 13.2 The#include Preprocessor Directive 13.3 The#define Preprocessor Directive: Symbolic Constants 13.4 The#define Preprocessor Directive: Macros
Table of Contents. Java CGI HOWTO
Table of Contents Java CGI HOWTO...1 by David H. Silber javacgi [email protected] 1.Introduction...1 2.Setting Up Your Server to Run Java CGI Programs (With Explanations)...1 3.Setting Up Your Server
BASIC SMARTFROG COMPONENTS AUTOMATED SOFTWARE INSTALLATION
CERN Engineering Data Management System for Detectors and AcceleratoR EDMS Document No. CERN Div./Group or Supplier/Contractor Document No. IT Date: July 20, 2004 BASIC SMARTFROG COMPONENTS AUTOMATED SOFTWARE
CS 294-73 Software Engineering for Scientific Computing. http://www.cs.berkeley.edu/~colella/cs294. Lecture 25:Mixed Language Programming.
CS 294-73 Software Engineering for Scientific Computing http://www.cs.berkeley.edu/~colella/cs294 Lecture 25:Mixed Language Programming. Different languages Technical, historical, cultural differences
Unix Shell Scripts. Contents. 1 Introduction. Norman Matloff. July 30, 2008. 1 Introduction 1. 2 Invoking Shell Scripts 2
Unix Shell Scripts Norman Matloff July 30, 2008 Contents 1 Introduction 1 2 Invoking Shell Scripts 2 2.1 Direct Interpretation....................................... 2 2.2 Indirect Interpretation......................................
The C Programming Language course syllabus associate level
TECHNOLOGIES The C Programming Language course syllabus associate level Course description The course fully covers the basics of programming in the C programming language and demonstrates fundamental programming
SciTools Understand Flavor for Structure 101g
SciTools Understand Flavor for Structure 101g By Marcio Marchini ([email protected] ) 2014/10/10 1) WHAT IS THE UNDERSTAND FLAVOR FOR STRUCTURE101G? 1 2) WHY VARIOUS FLAVORS, AND NOT JUST ONE?
Overview. Open source toolchains. Buildroot features. Development process
Overview Open source toolchains Buildroot features Development process 1 Tools in development process toolchain cross-compiler assembler & linker (filesystem) image generator boot loader / image writer
RTI Connext DDS. Core Libraries Getting Started Guide Addendum for Android Systems Version 5.2.0
RTI Connext DDS Core Libraries Getting Started Guide Addendum for Android Systems Version 5.2.0 1 2015 Real-Time Innovations, Inc. All rights reserved. Printed in U.S.A. First printing. June 2015. Trademarks
Using Git for Project Management with µvision
MDK Version 5 Tutorial AN279, Spring 2015, V 1.0 Abstract Teamwork is the basis of many modern microcontroller development projects. Often teams are distributed all over the world and over various time
Open Watcom Linux Port GUI Software Requirements Specification
Open Watcom Linux Port Copyright 2004 Created on 1/15/2004 2:01 PM Open Watcom Linux Port Page 2 of 54 Table of Contents Executive Summary 7 1. Introduction 7 1.1 About this document 7 1.2 Document structure
Documentation and Project Organization
Documentation and Project Organization Software Engineering Workshop, December 5-6, 2005 Jan Beutel ETH Zürich, Institut TIK December 5, 2005 Overview Project Organization Specification Bug tracking/milestones
Leak Check Version 2.1 for Linux TM
Leak Check Version 2.1 for Linux TM User s Guide Including Leak Analyzer For x86 Servers Document Number DLC20-L-021-1 Copyright 2003-2009 Dynamic Memory Solutions LLC www.dynamic-memory.com Notices Information
