Disabled external gits

This commit is contained in:
2022-04-07 18:46:57 +02:00
parent 88cb3426ad
commit 15e7120d6d
5316 changed files with 4563444 additions and 6 deletions

View File

@@ -0,0 +1,63 @@
# Copyright (c) 2005-2020 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Common Makefile that builds and runs example.
# Just specify your program basename
PROG=Seismic
ARGS=auto 0
PERF_RUN_ARGS=auto 10000 silent
LIGHT_ARGS=1:2 100
# Trying to find if icl.exe is set
CXX1 = $(TBB_CXX)-
CXX2 = $(CXX1:icl.exe-=icl.exe)
CXX = $(CXX2:-=cl.exe)
# Uncomment one of next lines to choose user interface type (console, gdiplus, direct draw)
#UI = con
UI = gdi
#UI = dd
# Machine architecture, auto-detected from TBB_TARGET_ARCH by default
# Use XARCH variable to change it. See index.html for more information
ARCH0 = $(TBB_TARGET_ARCH)-
ARCH1 = $(ARCH0:ia32-=x86)
ARCH2 = $(ARCH1:intel64-=AMD64)
XARCH = $(ARCH2:-=x86)
MAKEINC = ../../common/gui/Makefile.win
SOURCES = seismic_video.cpp universe.cpp main.cpp
all: release test
release: compiler_check
@$(MAKE) -f $(MAKEINC) UI=$(UI) CXX="$(CXX)" CXXFLAGS="$(CXXFLAGS)" LFLAGS="$(LDFLAGS) tbb.lib $(LIBS)" XARCH=$(XARCH) RCNAME=SeismicSimulation SOURCE="$(SOURCES)" EXE=$(PROG).exe build_one
debug: compiler_check
@$(MAKE) -f $(MAKEINC) UI=$(UI) DEBUG=_debug CXX="$(CXX)" CXXFLAGS="$(CXXFLAGS) /D TBB_USE_DEBUG" LFLAGS="$(LDFLAGS) tbb_debug.lib $(LIBS)" XARCH=$(XARCH) RCNAME=SeismicSimulation SOURCE="$(SOURCES)" EXE=$(PROG).exe build_one
clean:
@cmd.exe /C del $(PROG).exe *.obj *.?db *.manifest msvs\SeismicSimulation.res >nul 2>&1
test:
$(PROG) $(ARGS)
perf_build: compiler_check
@$(MAKE) -f $(MAKEINC) UI=con CXX="$(CXX)" CXXFLAGS="$(CXXFLAGS)" LFLAGS="$(LDFLAGS) tbb.lib $(LIBS)" XARCH=$(XARCH) RCNAME=SeismicSimulation SOURCE="$(SOURCES) " EXE=$(PROG).exe build_one
perf_run:
$(PROG) $(PERF_RUN_ARGS)
light_test:
$(PROG) $(LIGHT_ARGS)
compiler_check:
@echo compiler_test>compiler_test && @$(CXX) /E compiler_test >nul 2>&1 || echo "$(CXX) command not found. Check if CXX=$(CXX) is set properly"
@cmd.exe /C del compiler_test

View File

@@ -0,0 +1,134 @@
/*
Copyright (c) 2005-2020 Intel Corporation
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
#define VIDEO_WINMAIN_ARGS
#include <iostream>
#include "tbb/tick_count.h"
#include "tbb/global_control.h"
#include "../../common/utility/utility.h"
#include "../../common/utility/get_default_num_threads.h"
#include "seismic_video.h"
#include "universe.h"
Universe u;
struct RunOptions {
//! It is used for console mode for test with different number of threads and also has
//! meaning for GUI: threads.first - use separate event/updating loop thread (>0) or not (0).
//! threads.second - initialization value for scheduler
utility::thread_number_range threads;
int numberOfFrames;
bool silent;
bool parallel;
RunOptions(utility::thread_number_range threads_ , int number_of_frames_ , bool silent_ , bool parallel_ )
: threads(threads_),numberOfFrames(number_of_frames_), silent(silent_), parallel(parallel_)
{
}
};
RunOptions ParseCommandLine(int argc, char *argv[]){
// zero number of threads means to run serial version
utility::thread_number_range threads(utility::get_default_num_threads,0,utility::get_default_num_threads());
int numberOfFrames = 0;
bool silent = false;
bool serial = false;
utility::parse_cli_arguments(argc,argv,
utility::cli_argument_pack()
//"-h" option for displaying help is present implicitly
.positional_arg(threads,"n-of-threads",utility::thread_number_range_desc)
.positional_arg(numberOfFrames,"n-of-frames","number of frames the example processes internally (0 means unlimited)")
.arg(silent,"silent","no output except elapsed time")
.arg(serial,"serial","in GUI mode start with serial version of algorithm")
);
return RunOptions(threads,numberOfFrames,silent,!serial);
}
int main(int argc, char *argv[])
{
try{
tbb::tick_count mainStartTime = tbb::tick_count::now();
RunOptions options = ParseCommandLine(argc,argv);
SeismicVideo video(u,options.numberOfFrames,options.threads.last,options.parallel);
// video layer init
if(video.init_window(u.UniverseWidth, u.UniverseHeight)) {
video.calc_fps = true;
video.threaded = options.threads.first > 0;
// video is ok, init Universe
u.InitializeUniverse(video);
// main loop
video.main_loop();
}
else if(video.init_console()) {
// do console mode
if (options.numberOfFrames == 0) {
options.numberOfFrames = 1000;
std::cout << "Substituting 1000 for unlimited frames because not running interactively\n";
}
for(int p = options.threads.first; p <= options.threads.last; p = options.threads.step(p)) {
tbb::tick_count xwayParallelismStartTime = tbb::tick_count::now();
u.InitializeUniverse(video);
int numberOfFrames = options.numberOfFrames;
#if __TBB_MIC_OFFLOAD
drawing_memory dmem = video.get_drawing_memory();
char *pMem = dmem.get_address();
size_t memSize = dmem.get_size();
#pragma offload target(mic) in(u, numberOfFrames, p, dmem), out(pMem:length(memSize))
{
// It is necessary to update the pointer on mic
// since the address spaces on host and on target are different
dmem.set_address(pMem);
u.SetDrawingMemory(dmem);
#endif // __TBB_MIC_OFFLOAD
if (p==0) {
//run a serial version
for( int i=0; i<numberOfFrames; ++i ) {
u.SerialUpdateUniverse();
}
} else {
tbb::global_control c(tbb::global_control::max_allowed_parallelism, p);
for( int i=0; i<numberOfFrames; ++i ) {
u.ParallelUpdateUniverse();
}
}
#if __TBB_MIC_OFFLOAD
}
#endif // __TBB_MIC_OFFLOAD
if (!options.silent){
double fps = options.numberOfFrames/((tbb::tick_count::now()-xwayParallelismStartTime).seconds());
std::cout<<fps<<" frame per sec with ";
if (p==0){
std::cout<<"serial code\n";
}else{
std::cout<<p<<" way parallelism\n";
}
}
}
}
video.terminate();
utility::report_elapsed_time((tbb::tick_count::now() - mainStartTime).seconds());
return 0;
}catch(std::exception& e){
std::cerr<<"error occurred. error text is :\"" <<e.what()<<"\"\n";
return 1;
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

View File

@@ -0,0 +1,145 @@
// Microsoft Visual C++ generated resource script.
//
#include "resource.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#define APSTUDIO_HIDDEN_SYMBOLS
#include "windows.h"
#undef APSTUDIO_HIDDEN_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
// English (U.S.) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
#ifdef _WIN32
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
#pragma code_page(1252)
#endif //_WIN32
/////////////////////////////////////////////////////////////////////////////
//
// Icon
//
// Icon with lowest ID value placed first to ensure application icon
// remains consistent on all systems.
IDI_SEISMICSIMULATION ICON "SeismicSimulation.ico"
IDI_SMALL ICON "small.ico"
/////////////////////////////////////////////////////////////////////////////
//
// Menu
//
IDC_SEISMICSIMULATION MENU
BEGIN
POPUP "&File"
BEGIN
MENUITEM "&Parallel", ID_FILE_PARALLEL
MENUITEM "&Serial", ID_FILE_SERIAL
MENUITEM SEPARATOR
MENUITEM "&Enable GUI", ID_FILE_ENABLEGUI
MENUITEM "&Disable GUI", ID_FILE_DISABLEGUI
MENUITEM SEPARATOR
MENUITEM "E&xit", IDM_EXIT
END
POPUP "&Help"
BEGIN
MENUITEM "&About ...", IDM_ABOUT
END
END
/////////////////////////////////////////////////////////////////////////////
//
// Accelerator
//
IDC_SEISMICSIMULATION ACCELERATORS
BEGIN
VK_OEM_2, IDM_ABOUT, VIRTKEY, ALT, NOINVERT
"P", ID_FILE_PARALLEL, VIRTKEY, ALT, NOINVERT
"S", ID_FILE_SERIAL, VIRTKEY, ALT, NOINVERT
"D", ID_FILE_DISABLEGUI, VIRTKEY, ALT, NOINVERT
"E", ID_FILE_ENABLEGUI, VIRTKEY, ALT, NOINVERT
END
/////////////////////////////////////////////////////////////////////////////
//
// Dialog
//
IDD_ABOUTBOX DIALOG 22, 17, 230, 75
STYLE DS_SETFONT | DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
CAPTION "About"
FONT 8, "System"
BEGIN
ICON IDI_SEISMICSIMULATION,IDC_MYICON,14,9,16,16
LTEXT "SeismicSimulation Version 1.1",IDC_STATIC,49,10,119,8,SS_NOPREFIX
LTEXT "Copyright (C) 2005-2008",IDC_STATIC,49,20,119,8
DEFPUSHBUTTON "OK",IDOK,195,6,30,11,WS_GROUP
END
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
1 TEXTINCLUDE
BEGIN
"resource.h\0"
END
2 TEXTINCLUDE
BEGIN
"#define APSTUDIO_HIDDEN_SYMBOLS\r\n"
"#include ""windows.h""\r\n"
"#undef APSTUDIO_HIDDEN_SYMBOLS\r\n"
"\0"
END
3 TEXTINCLUDE
BEGIN
"\r\n"
"\0"
END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// String Table
//
STRINGTABLE
BEGIN
IDS_APP_TITLE "SeismicSimulation"
IDC_SEISMICSIMULATION "SEISMICSIMULATION"
END
#endif // English (U.S.) resources
/////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED

View File

@@ -0,0 +1,48 @@
/*
Copyright (c) 2005-2020 Intel Corporation
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
//{{NO_DEPENDENCIES}}
// Microsoft Visual C++ generated include file.
// Used by SeismicSimulation.rc
//
#define IDC_MYICON 2
#define IDD_SEISMICSIMULATION_DIALOG 102
#define IDS_APP_TITLE 103
#define IDD_ABOUTBOX 103
#define IDM_ABOUT 104
#define IDM_EXIT 105
#define IDI_SEISMICSIMULATION 107
#define IDI_SMALL 108
#define IDC_SEISMICSIMULATION 109
#define IDR_MAINFRAME 128
#define ID_FILE_PARALLEL 32771
#define ID_FILE_SERIAL 32772
#define IDM_PARALLEL 32773
#define ID_FILE_ENABLEGUI 32774
#define ID_FILE_DISABLEGUI 32775
#define IDC_STATIC -1
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NO_MFC 1
#define _APS_NEXT_RESOURCE_VALUE 129
#define _APS_NEXT_COMMAND_VALUE 32782
#define _APS_NEXT_CONTROL_VALUE 1000
#define _APS_NEXT_SYMED_VALUE 110
#endif
#endif

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

View File

@@ -0,0 +1,471 @@
<!DOCTYPE html>
<html xmlns:mso="urn:schemas-microsoft-com:office:office" xmlns:msdt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882">
<head>
<meta charset="UTF-8">
<style>
::selection {
background: #b7ffb7;
}
::-moz-selection {
background: #b7ffb7;
}
body {
font-family: Arial, Helvetica, sans-serif;
font-size: 16px;
width: 800px;
margin: 0 auto;
}
#banner {
/* Div for banner */
float:left;
margin: 0px;
margin-bottom: 10px;
width: 100%;
background-color: #0071C5;
z-index: 0;
}
#banner .logo {
/* Apply to logo in banner. Add as class to image tag. */
float: left;
margin-right: 20px;
margin-left: 20px;
margin-top: 15px;
padding-bottom: 5px;
}
h1 {
text-align: center;
font-size: 36px;
}
h1.title {
/* Add as class to H1 in banner */
font-family: "Intel Clear", Verdana, Arial, sans-serif;
font-weight:normal;
color: #FFFFFF;
font-size: 170%;
margin-right: 40px;
margin-left: 40px;
padding-right: 20px;
text-indent: 20px;
}
.h3-alike {
display:inline;
font-size: 1.17em;
font-weight: bold;
color: #0071C5;
}
h3 {
font-size: 1.17em;
font-weight: bold;
color: #0071C5;
}
.h4-alike {
display:inline;
font-size: 1.05em;
font-weight: bold;
}
pre {
font-family: "Consolas", Monaco, monospace;
font-size:small;
background: #fafafa;
margin: 0;
padding-left:20px;
}
#footer {
font-size: small;
}
code {
font-family: "Consolas", Monaco, monospace;
}
.code-block
{
padding-left:20px;
}
.changes {
margin: 1em 0;
}
.changes input:active {
position: relative;
top: 1px;
}
.changes input:hover:after {
padding-left: 16px;
font-size: 10px;
content: 'More';
}
.changes input:checked:hover:after {
content: 'Less';
}
.changes input + .show-hide {
display: none;
}
.changes input:checked + .show-hide {
display: block;
}
ul {
margin: 0;
padding: 0.5em 0 0.5em 2.5em;
}
ul li {
margin-bottom: 3px;
}
ul li:last-child {
margin-bottom: 0;
}
.disc {
list-style-type:disc
}
.circ {
list-style-type:circle
}
.single {
padding: 0 0.5em;
}
/* ------------------------------------------------- */
/* Table styles */
table{
margin-bottom:5pt;
border-collapse:collapse;
margin-left:0px;
margin-top:0.3em;
font-size:10pt;
}
tr{
vertical-align:top;
}
th,
th h3{
padding:4px;
text-align:left;
background-color:#0071C5;
font-weight:bold;
margin-top:1px;
margin-bottom:0;
color:#FFFFFF;
font-size:10pt;
vertical-align:middle;
}
th{
border:1px #dddddd solid;
padding-top:2px;
padding-bottom:0px;
padding-right:3px;
padding-left:3px;
}
td{
border:1px #dddddd solid;
vertical-align:top;
font-size:100%;
text-align:left;
margin-bottom:0;
}
td,
td p{
margin-top:0;
margin-left:0;
text-align:left;
font-size:inherit;
line-height:120%;
}
td p{
margin-bottom:0;
padding-top:5px;
padding-bottom:5px;
padding-right:5px;
padding-left:1px;
}
.noborder{
border:0px none;
}
.noborder1stcol{
border:0px none;
padding-left:0pt;
}
td ol{
font-size:inherit;
margin-left:28px;
}
td ul{
font-size:inherit;
margin-left:24px;
}
.DefListTbl{
width:90%;
margin-left:-3pt;
}
.syntaxdiagramtbl{
margin-left:-3pt;
}
.sdtbl{
}
.sdrow{
}
.sdtblp{
border:0px none;
font-size:inherit;
line-height:120%;
margin-bottom:0;
padding-bottom:0px;
padding-top:5px;
padding-left:0px;
padding-right:5px;
vertical-align:top;
}
.idepara, .ide_para{
border:0px none;
font-size:inherit;
line-height:120%;
margin-bottom:0;
padding-bottom:0px;
padding-top:5px;
padding-left:0px;
padding-right:5px;
vertical-align:top;
}
.specs {
border-collapse:collapse;
}
.specs td, .specs th {
font-size: 14px;
}
.specs td {
border: 1px solid black;
}
.specs td td, .specs td th {
border: none;
}
.specs td, .specs td td, .specs td th {
padding: 0 0.2em 0.2em;
text-align: center;
}
.specs td tr:last-child td,
.specs td tr:last-child th {
padding: 0 0.2em;
}
.serial-time {
}
.modified-time {
width: 6.5em;
}
.compiler {
}
.comp-opt {
}
.sys-specs {
width: 18em;
}
.note {
font-size:small;
font-style: italic;
}
</style>
<title>Intel&reg; Threading Building Blocks. Seismic sample</title>
</head>
<body>
<div id="banner">
<img class="logo" src="data:image/png;base64,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
9Or1LzUmVVz+HJXDAAAAAElFTkSuQmCC">
<h1 class="title">Intel&reg; Threading Building Blocks.<br>Seismic sample</h1>
</div>
<p>
Parallel seismic wave simulation that demonstrates use of parallel_for and affinity_partitioner.
<br><br>
The example can be built in the offload version to run on Intel&reg; Many Integrated Core (Intel&reg; MIC) Architecture based coprocessor (see <a href="../../index.html">build instructions</a>).
<br><br>
<b>Note:</b> Currently, the offload version does not support GUI and can only be used with console mode.
</p>
<div class="changes">
<div class="h3-alike">System Requirements</div>
<input type="checkbox">
<div class="show-hide">
<p>
For the most up to date system requirements, see the <a href="http://software.intel.com/en-us/articles/intel-threading-building-blocks-release-notes">release notes.</a>
</p>
</div>
</div>
<div class="changes">
<div class="h3-alike">Files</div>
<input type="checkbox" checked="checked">
<div class="show-hide">
<dl>
<dt><a href="main.cpp">main.cpp</a>
<dd>Main program which parses command line options and runs the algorithm with different numbers of threads.
<dt><a href="universe.h">universe.h</a>
<dd>Wave propagation methods interface.
<dt><a href="universe.cpp">universe.cpp</a>
<dd>Wave propagation methods implementation.
<dt><a href="seismic_video.h">seismic_video.h</a>
<dd>GUI mode support interface.
<dt><a href="seismic_video.cpp">seismic_video.cpp</a>
<dd>GUI mode support implementation.
<dt><a href="Makefile">Makefile</a>
<dd>Makefile for building the example.
</dl>
</div>
</div>
<div class="changes">
<div class="h3-alike">Directories</div>
<input type="checkbox" checked="checked">
<div class="show-hide">
<dl>
<dt><a href="msvs/">msvs</a>
<dd>Contains Microsoft* Visual Studio* workspace for building and running the example (Windows* systems only).
<dt><a href="xcode/">xcode</a>
<dd>Contains Xcode* IDE workspace for building and running the example (macOS* systems only).
</dl>
<p>For information about the minimum supported version of IDE, see <a href="http://software.intel.com/en-us/articles/intel-threading-building-blocks-release-notes">release notes.</a></p>
</div>
</div>
<div class="changes">
<div class="h3-alike">Build instructions</div>
<input type="checkbox" checked="checked">
<div class="show-hide">
<p>General build directions can be found <a href="../../index.html">here</a>.</p>
<p>The following additional options are supported:</p>
<dl>
<dt><tt>make [(general targets: {release, debug} [test])] UI={con, gdi, d2d, x, mac}</tt>
<dd>Build and run as usual, but build with the specified GUI driver: console, GDI+*,
Direct2D*, X11, or OpenGL*
(see the description of the <a href="../../common/index.html">common GUI code</a>
for more information on available graphics support).<br>
For Linux* and macOS* systems, the best available driver is detected automatically by the Makefile.<br>
For Windows* systems, UI=gdi is the default GUI driver; compiling with UI=d2d may offer superior
performance, but can only be used if the Microsoft* DirectX* SDK is installed on your system
and if overlay is supported by your graphics card.<br>
Use UI=con to build without the GUI for use in making performance measurements
<i>(strongly recommended when measuring performance or scalability; see note below)</i>.
<dt><tt>make [(above options or targets)] XARCH=x64</tt>
<dd>Build and run as above, but also specify XARCH=x64
(or XARCH=AMD64 for older compilers) when building the example on Windows* as a 64-bit binary.
<dt><tt>make [(above options or targets)] DDLIB_DIR=&lt;<i>specify path to Direct Draw* SDK here</i>&gt;</tt>
<dd>If you experience ddraw.lib linking problems, specify the correct library directory via this option.
<dt><tt>make [(above options or targets)] CXXFLAGS=-DX_FULLSYNC</tt>
<dd>Build and run as above, but enable full X11 synchronization if you experience "tearing" of motion on slower video systems.
</dl>
</div>
</div>
<div class="changes">
<div class="h3-alike">Usage</div>
<input type="checkbox" checked="checked">
<div class="show-hide">
<dl>
<dt><tt>seismic <i>-h</i></tt>
<dd>Prints the help for command line options
<dt><tt>seismic [<i>n-of-threads</i>=value] [<i>n-of-frames</i>=value] [<i>silent</i>] [<i>serial</i>]</tt>
<dt><tt>seismic [<i>n-of-threads</i> [<i>n-of-frames</i>]] [<i>silent</i>] [<i>serial</i>]</tt>
<dd><i>n-of-threads</i> is the number of threads to use; a range of the form low[:high], where low and optional high are non-negative integers or 'auto' for a platform-specific default number.<br>
<i>n-of-frames</i> is a number of frames the example processes internally.<br>
<i>silent</i> - no output except elapsed time.<br>
<i>serial</i> - in GUI mode start with serial version of algorithm.<br>
<dt>To run a short version of this example, e.g., for use with Intel&reg; Parallel Inspector::
<dd>Build a <i>debug</i> version of the example
(see the <a href="../../index.html">build instructions</a>).
<br>Run it with the desired number of threads and smaller number of frames, e.g., <tt>seismic 4 5</tt>.
</dl>
</div>
</div>
<div class="changes">
<div class="h3-alike">Hot keys</div>
<input type="checkbox" checked="checked">
<div class="show-hide">
<p>
The following hot keys can be used in interactive execution mode when the example is compiled with the graphical
user interface:
</p>
<dl>
<dt>&lt;left mouse button&gt;
<dd>Starts new seismic wave in place specified by mouse cursor.
<dt>&lt;space&gt;
<dd>Toggles between parallel and serial execution modes.
<dt>&lt;p&gt;
<dd>Enables parallel execution mode.
<dt>&lt;s&gt;
<dd>Enables serial execution mode.
<dt>&lt;e&gt;
<dd>Enables screen updates.
<dt>&lt;d&gt;
<dd>Disables screen updates <i>(strongly recommended when measuring performance or scalability; see note below)</i>.
<dt>&lt;esc&gt;
<dd>Stops execution.
</dl>
</div>
</div>
<div class="changes">
<div class="h3-alike">Notes</div>
<input type="checkbox" checked="checked">
<div class="show-hide">
<ul>
<li>While running with the GUI display turned on should yield reasonable performance in most cases, <i>running with the GUI
display turned off is strongly recommended</i> in order to demonstrate the full performance and scalability of the example.
</ul>
</div>
</div>
<br>
<a href="../index.html">Up to parent directory</a>
<hr>
<div class="changes">
<div class="h3-alike">Legal Information</div>
<input type="checkbox">
<div class="show-hide">
<p>
Intel and the Intel logo are trademarks of Intel Corporation in the U.S. and/or other countries.
<br>* Other names and brands may be claimed as the property of others.
<br>&copy; 2020, Intel Corporation
</p>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,144 @@
/*
Copyright (c) 2005-2020 Intel Corporation
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
#include "seismic_video.h"
#include "universe.h"
#include "tbb/global_control.h"
const char * const SeismicVideo::titles[2] = {"Seismic Simulation: Serial", "Seismic Simulation: Parallel"};
void SeismicVideo::on_mouse(int x, int y, int key) {
if(key == 1){
u_.TryPutNewPulseSource(x,y);
}
}
void SeismicVideo::on_key(int key) {
key &= 0xff;
if(char(key) == ' ') initIsParallel = !initIsParallel;
else if(char(key) == 'p') initIsParallel = true;
else if(char(key) == 's') initIsParallel = false;
else if(char(key) == 'e') updating = true;
else if(char(key) == 'd') updating = false;
else if(key == 27) running = false;
title = titles[initIsParallel?1:0];
}
void SeismicVideo::on_process() {
tbb::global_control c(tbb::global_control::max_allowed_parallelism, threadsHigh);
for( int frames = 0; numberOfFrames_==0 || frames<numberOfFrames_; ++frames ) {
if( initIsParallel )
u_.ParallelUpdateUniverse();
else
u_.SerialUpdateUniverse();
if( !next_frame() ) break;
}
}
#ifdef _WINDOWS
#include "msvs/resource.h"
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
SeismicVideo * gVideo = NULL;
#endif
SeismicVideo::SeismicVideo( Universe &u, int number_of_frames, int threads_high, bool init_is_parallel)
:numberOfFrames_(number_of_frames),initIsParallel(init_is_parallel),u_(u),threadsHigh(threads_high)
{
title = titles[initIsParallel?1:0];
#ifdef _WINDOWS
gVideo = this;
LoadStringA(video::win_hInstance, IDC_SEISMICSIMULATION, szWindowClass, MAX_LOADSTRING);
memset(&wcex, 0, sizeof(wcex));
wcex.lpfnWndProc = (WNDPROC)WndProc;
wcex.hIcon = LoadIcon(video::win_hInstance, MAKEINTRESOURCE(IDI_SEISMICSIMULATION));
wcex.hCursor = LoadCursor(NULL, IDC_ARROW);
wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
wcex.lpszMenuName = LPCTSTR(IDC_SEISMICSIMULATION);
wcex.lpszClassName = szWindowClass;
wcex.hIconSm = LoadIcon(video::win_hInstance, MAKEINTRESOURCE(IDI_SMALL));
win_set_class(wcex); // ascii convention here
win_load_accelerators(IDC_SEISMICSIMULATION);
#endif
}
#ifdef _WINDOWS
//
// FUNCTION: WndProc(HWND, unsigned, WORD, LONG)
//
// PURPOSE: Processes messages for the main window.
//
// WM_COMMAND - process the application menu
// WM_PAINT - Paint the main window
// WM_DESTROY - post a quit message and return
//
//
LRESULT CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
{
case WM_INITDIALOG: return TRUE;
case WM_COMMAND:
if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL) {
EndDialog(hDlg, LOWORD(wParam));
return TRUE;
}
break;
}
return FALSE;
}
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
int wmId;
switch (message) {
case WM_COMMAND:
wmId = LOWORD(wParam);
// Parse the menu selections:
switch (wmId)
{
case IDM_ABOUT:
DialogBox(video::win_hInstance, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, (DLGPROC)About);
break;
case IDM_EXIT:
PostQuitMessage(0);
break;
case ID_FILE_PARALLEL:
gVideo->on_key('p');
break;
case ID_FILE_SERIAL:
gVideo->on_key('s');
break;
case ID_FILE_ENABLEGUI:
gVideo->on_key('e');
break;
case ID_FILE_DISABLEGUI:
gVideo->on_key('d');
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
return 0;
}
#endif

View File

@@ -0,0 +1,50 @@
/*
Copyright (c) 2005-2020 Intel Corporation
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
#ifndef SEISMIC_VIDEO_H_
#define SEISMIC_VIDEO_H_
#include "../../common/gui/video.h"
class Universe;
class SeismicVideo : public video
{
#ifdef _WINDOWS
#define MAX_LOADSTRING 100
TCHAR szWindowClass[MAX_LOADSTRING]; // the main window class name
WNDCLASSEX wcex;
#endif
static const char * const titles[2];
bool initIsParallel ;
Universe &u_;
int numberOfFrames_; // 0 means forever, positive means number of frames, negative is undefined
int threadsHigh;
private:
void on_mouse(int x, int y, int key);
void on_process();
#ifdef _WINDOWS
public:
#endif
void on_key(int key);
public:
SeismicVideo( Universe &u,int numberOfFrames, int threadsHigh, bool initIsParallel=true);
};
#endif /* SEISMIC_VIDEO_H_ */

View File

@@ -0,0 +1,217 @@
/*
Copyright (c) 2005-2020 Intel Corporation
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
#include "../../common/gui/video.h"
#include <cmath>
#include "tbb/blocked_range.h"
#include "tbb/parallel_for.h"
using namespace std;
#ifdef _MSC_VER
// warning C4068: unknown pragma
#pragma warning(disable: 4068)
// warning C4351: new behavior: elements of array 'array' will be default initialized
#pragma warning(disable: 4351)
#endif
#include "universe.h"
const colorcomp_t MaterialColor[4][3] = { // BGR
{96,0,0}, // WATER
{0,48,48}, // SANDSTONE
{32,32,23} // SHALE
};
void Universe::InitializeUniverse(video const& colorizer) {
pulseCounter = pulseTime = 100;
pulseX = UniverseWidth/3;
pulseY = UniverseHeight/4;
// Initialize V, S, and T to slightly non-zero values, in order to avoid denormal waves.
for( int i=0; i<UniverseHeight; ++i )
#pragma ivdep
for( int j=0; j<UniverseWidth; ++j ) {
T[i][j] = S[i][j] = V[i][j] = ValueType(1.0E-6);
}
for( int i=1; i<UniverseHeight-1; ++i ) {
for( int j=1; j<UniverseWidth-1; ++j ) {
float x = float(j-UniverseWidth/2)/(UniverseWidth/2);
ValueType t = (ValueType)i/UniverseHeight;
MaterialType m;
D[i][j] = 1.0;
// Coefficient values are fictitious, and chosen to visually exaggerate
// physical effects such as Rayleigh waves. The fabs/exp line generates
// a shale layer with a gentle upwards slope and an anticline.
if( t<0.3f ) {
m = WATER;
M[i][j] = 0.125;
L[i][j] = 0.125;
} else if( fabs(t-0.7+0.2*exp(-8*x*x)+0.025*x)<=0.1 ) {
m = SHALE;
M[i][j] = 0.5;
L[i][j] = 0.6;
} else {
m = SANDSTONE;
M[i][j] = 0.3;
L[i][j] = 0.4;
}
material[i][j] = m;
}
}
ValueType scale = 2.0f/ColorMapSize;
for( int k=0; k<4; ++k ) {
for( int i=0; i<ColorMapSize; ++i ) {
colorcomp_t c[3];
ValueType t = (i-ColorMapSize/2)*scale;
ValueType r = t>0 ? t : 0;
ValueType b = t<0 ? -t : 0;
ValueType g = 0.5f*fabs(t);
memcpy(c, MaterialColor[k], sizeof(c));
c[2] = colorcomp_t(r*(255-c[2])+c[2]);
c[1] = colorcomp_t(g*(255-c[1])+c[1]);
c[0] = colorcomp_t(b*(255-c[0])+c[0]);
ColorMap[k][i] = colorizer.get_color(c[2], c[1], c[0]);
}
}
// Set damping coefficients around border to reduce reflections from boundaries.
ValueType d = 1.0;
for( int k=DamperSize-1; k>0; --k ) {
d *= 1-1.0f/(DamperSize*DamperSize);
for( int j=1; j<UniverseWidth-1; ++j ) {
D[k][j] *= d;
D[UniverseHeight-1-k][j] *= d;
}
for( int i=1; i<UniverseHeight-1; ++i ) {
D[i][k] *= d;
D[i][UniverseWidth-1-k] *= d;
}
}
drawingMemory = colorizer.get_drawing_memory();
}
void Universe::UpdatePulse() {
if( pulseCounter>0 ) {
ValueType t = (pulseCounter-pulseTime/2)*0.05f;
V[pulseY][pulseX] += 64*sqrt(M[pulseY][pulseX])*exp(-t*t);
--pulseCounter;
}
}
struct Universe::Rectangle {
struct std::pair<int,int> xRange;
struct std::pair<int,int> yRange;
Rectangle (int startX, int startY, int width, int height):xRange(startX,width),yRange(startY,height){}
int StartX() const {return xRange.first;}
int StartY() const {return yRange.first;}
int Width() const {return xRange.second;}
int Height() const {return yRange.second;}
int EndX() const {return xRange.first + xRange.second;}
int EndY() const {return yRange.first + yRange.second;}
};
void Universe::UpdateStress(Rectangle const& r ) {
drawing_area drawing(r.StartX(),r.StartY(),r.Width(),r.Height(),drawingMemory);
for( int i=r.StartY(); i<r.EndY() ; ++i ) {
drawing.set_pos(1, i-r.StartY());
#pragma ivdep
for( int j=r.StartX(); j<r.EndX() ; ++j ) {
S[i][j] += M[i][j]*(V[i][j+1]-V[i][j]);
T[i][j] += M[i][j]*(V[i+1][j]-V[i][j]);
int index = (int)(V[i][j]*(ColorMapSize/2)) + ColorMapSize/2;
if( index<0 ) index = 0;
if( index>=ColorMapSize ) index = ColorMapSize-1;
color_t* c = ColorMap[material[i][j]];
drawing.put_pixel(c[index]);
}
}
}
void Universe::SerialUpdateStress() {
Rectangle area(0, 0, UniverseWidth-1, UniverseHeight-1);
UpdateStress(area);
}
struct UpdateStressBody {
Universe & u_;
UpdateStressBody(Universe & u):u_(u){}
void operator()( const tbb::blocked_range<int>& range ) const {
Universe::Rectangle area(0, range.begin(), u_.UniverseWidth-1, range.size());
u_.UpdateStress(area);
}
};
void Universe::ParallelUpdateStress(tbb::affinity_partitioner &affinity) {
tbb::parallel_for( tbb::blocked_range<int>( 0, UniverseHeight-1 ), // Index space for loop
UpdateStressBody(*this), // Body of loop
affinity ); // Affinity hint
}
void Universe::UpdateVelocity(Rectangle const& r) {
for( int i=r.StartY(); i<r.EndY(); ++i )
#pragma ivdep
for( int j=r.StartX(); j<r.EndX(); ++j )
V[i][j] = D[i][j]*(V[i][j] + L[i][j]*(S[i][j] - S[i][j-1] + T[i][j] - T[i-1][j]));
}
void Universe::SerialUpdateVelocity() {
UpdateVelocity(Rectangle(1,1,UniverseWidth-1,UniverseHeight-1));
}
struct UpdateVelocityBody {
Universe & u_;
UpdateVelocityBody(Universe & u):u_(u){}
void operator()( const tbb::blocked_range<int>& y_range ) const {
u_.UpdateVelocity(Universe::Rectangle(1,y_range.begin(),u_.UniverseWidth-1,y_range.size()));
}
};
void Universe::ParallelUpdateVelocity(tbb::affinity_partitioner &affinity) {
tbb::parallel_for( tbb::blocked_range<int>( 1, UniverseHeight ), // Index space for loop
UpdateVelocityBody(*this), // Body of loop
affinity ); // Affinity hint
}
void Universe::SerialUpdateUniverse() {
UpdatePulse();
SerialUpdateStress();
SerialUpdateVelocity();
}
void Universe::ParallelUpdateUniverse() {
/** Affinity is an argument to parallel_for to hint that an iteration of a loop
is best replayed on the same processor for each execution of the loop.
It is a static object because it must remember where the iterations happened
in previous executions. */
static tbb::affinity_partitioner affinity;
UpdatePulse();
ParallelUpdateStress(affinity);
ParallelUpdateVelocity(affinity);
}
bool Universe::TryPutNewPulseSource(int x, int y){
if(pulseCounter == 0) {
pulseCounter = pulseTime;
pulseX = x; pulseY = y;
return true;
}
return false;
}
void Universe::SetDrawingMemory(const drawing_memory &dmem) {
drawingMemory = dmem;
}

View File

@@ -0,0 +1,114 @@
/*
Copyright (c) 2005-2020 Intel Corporation
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
#ifndef UNIVERSE_H_
#define UNIVERSE_H_
#ifndef UNIVERSE_WIDTH
#define UNIVERSE_WIDTH 1024
#endif
#ifndef UNIVERSE_HEIGHT
#define UNIVERSE_HEIGHT 512
#endif
#include "../../common/gui/video.h"
#include "tbb/partitioner.h"
class Universe {
public:
enum {
UniverseWidth = UNIVERSE_WIDTH,
UniverseHeight = UNIVERSE_HEIGHT
};
private:
//in order to avoid performance degradation due to cache aliasing issue
//some padding is needed after each row in array, and between array themselves.
//the padding is achieved by adjusting number of rows and columns.
//as the compiler is forced to place class members of the same clause in order of the
//declaration this seems to be the right way of padding.
//magic constants added below are chosen experimentally for 1024x512.
enum {
MaxWidth = UniverseWidth+1,
MaxHeight = UniverseHeight+3
};
typedef float ValueType;
//! Horizontal stress
ValueType S[MaxHeight][MaxWidth];
//! Velocity at each grid point
ValueType V[MaxHeight][MaxWidth];
//! Vertical stress
ValueType T[MaxHeight][MaxWidth];
//! Coefficient related to modulus
ValueType M[MaxHeight][MaxWidth];
//! Damping coefficients
ValueType D[MaxHeight][MaxWidth];
//! Coefficient related to lightness
ValueType L[MaxHeight][MaxWidth];
enum { ColorMapSize = 1024};
color_t ColorMap[4][ColorMapSize];
enum MaterialType {
WATER=0,
SANDSTONE=1,
SHALE=2
};
//! Values are MaterialType, cast to an unsigned char to save space.
unsigned char material[MaxHeight][MaxWidth];
private:
enum { DamperSize = 32};
int pulseTime;
int pulseCounter;
int pulseX;
int pulseY;
drawing_memory drawingMemory;
public:
void InitializeUniverse(video const& colorizer);
void SerialUpdateUniverse();
void ParallelUpdateUniverse();
bool TryPutNewPulseSource(int x, int y);
void SetDrawingMemory(const drawing_memory &dmem);
private:
struct Rectangle;
void UpdatePulse();
void UpdateStress(Rectangle const& r );
void SerialUpdateStress() ;
friend struct UpdateStressBody;
friend struct UpdateVelocityBody;
void ParallelUpdateStress(tbb::affinity_partitioner &affinity);
void UpdateVelocity(Rectangle const& r);
void SerialUpdateVelocity() ;
void ParallelUpdateVelocity(tbb::affinity_partitioner &affinity);
};
#endif /* UNIVERSE_H_ */

View File

@@ -0,0 +1,586 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 46;
objects = {
/* Begin PBXBuildFile section */
84B8DA78152CA90100D59B95 /* OpenGLView.m in Sources */ = {isa = PBXBuildFile; fileRef = 84B8DA71152CA90100D59B95 /* OpenGLView.m */; };
84B8DA79152CA90100D59B95 /* tbbAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 84B8DA73152CA90100D59B95 /* tbbAppDelegate.m */; };
84B8DA7A152CA90100D59B95 /* (null) in Resources */ = {isa = PBXBuildFile; };
84B8DA80152CA97B00D59B95 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 84B8DA7C152CA97B00D59B95 /* InfoPlist.strings */; };
84B8DA81152CA97B00D59B95 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 84B8DA7E152CA97B00D59B95 /* MainMenu.xib */; };
84B8DA87152CA99C00D59B95 /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84B8DA82152CA99C00D59B95 /* main.cpp */; };
84B8DA88152CA99C00D59B95 /* seismic_video.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84B8DA83152CA99C00D59B95 /* seismic_video.cpp */; };
84B8DA89152CA99C00D59B95 /* universe.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84B8DA85152CA99C00D59B95 /* universe.cpp */; };
84D017561527431F0008A4E0 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84D017551527431F0008A4E0 /* Cocoa.framework */; };
84D01776152744BD0008A4E0 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84D01775152744BD0008A4E0 /* OpenGL.framework */; };
D3BD96921C0DD55E00163D8B /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84B8DA82152CA99C00D59B95 /* main.cpp */; };
D3BD96931C0DD56900163D8B /* seismic_video.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84B8DA83152CA99C00D59B95 /* seismic_video.cpp */; };
D3BD96941C0DD57600163D8B /* universe.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84B8DA85152CA99C00D59B95 /* universe.cpp */; };
D3BD96951C0DD59200163D8B /* macvideo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84B8DA99152CADF400D59B95 /* macvideo.cpp */; };
D3BD96961C0DD5A000163D8B /* OpenGLView.m in Sources */ = {isa = PBXBuildFile; fileRef = 84B8DA71152CA90100D59B95 /* OpenGLView.m */; };
D3BD96971C0DD5A900163D8B /* tbbAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 84B8DA73152CA90100D59B95 /* tbbAppDelegate.m */; };
D3BD96A31C0DE2BB00163D8B /* macvideo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84B8DA99152CADF400D59B95 /* macvideo.cpp */; };
D3BD96A61C0DE3DE00163D8B /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = D3BD96A51C0DE3DE00163D8B /* main.m */; };
D3BD96AB1C0E08E500163D8B /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = D3BD96A51C0DE3DE00163D8B /* main.m */; };
D3BD96B31C0E0AFE00163D8B /* tbbExample-Info.ios.plist in Resources */ = {isa = PBXBuildFile; fileRef = D3BD966D1C0DD00400163D8B /* tbbExample-Info.ios.plist */; };
D3BD96B51C0E0B2200163D8B /* tbbExample-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = D3BD96B41C0E0B2200163D8B /* tbbExample-Info.plist */; };
D3BD96B81C0E11CE00163D8B /* iOS.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D3BD96B61C0E11C600163D8B /* iOS.storyboard */; };
/* End PBXBuildFile section */
/* Begin PBXBuildRule section */
C3C5896E2191923E00DAC94C /* PBXBuildRule */ = {
isa = PBXBuildRule;
compilerSpec = com.intel.compilers.icc.latest;
fileType = sourcecode.cpp;
isEditable = 1;
outputFiles = (
);
script = "# Type a script or drag a script file from your workspace to insert its path.\n";
};
C3C5896F2191925E00DAC94C /* PBXBuildRule */ = {
isa = PBXBuildRule;
compilerSpec = com.intel.compilers.icc.latest;
fileType = sourcecode.cpp;
isEditable = 1;
outputFiles = (
);
script = "# Type a script or drag a script file from your workspace to insert its path.\n";
};
/* End PBXBuildRule section */
/* Begin PBXFileReference section */
84B8DA70152CA90100D59B95 /* OpenGLView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OpenGLView.h; path = ../../../common/gui/xcode/tbbExample/OpenGLView.h; sourceTree = "<group>"; };
84B8DA71152CA90100D59B95 /* OpenGLView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OpenGLView.m; path = ../../../common/gui/xcode/tbbExample/OpenGLView.m; sourceTree = "<group>"; };
84B8DA72152CA90100D59B95 /* tbbAppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = tbbAppDelegate.h; path = ../../../common/gui/xcode/tbbExample/tbbAppDelegate.h; sourceTree = "<group>"; };
84B8DA73152CA90100D59B95 /* tbbAppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = tbbAppDelegate.m; path = ../../../common/gui/xcode/tbbExample/tbbAppDelegate.m; sourceTree = "<group>"; };
84B8DA75152CA90100D59B95 /* tbbExample-Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "tbbExample-Prefix.pch"; path = "../../../common/gui/xcode/tbbExample/tbbExample-Prefix.pch"; sourceTree = "<group>"; };
84B8DA7D152CA97B00D59B95 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = InfoPlist.strings; sourceTree = "<group>"; };
84B8DA7F152CA97B00D59B95 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = MainMenu.xib; sourceTree = "<group>"; };
84B8DA82152CA99C00D59B95 /* main.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = main.cpp; path = ../main.cpp; sourceTree = "<group>"; };
84B8DA83152CA99C00D59B95 /* seismic_video.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = seismic_video.cpp; path = ../seismic_video.cpp; sourceTree = "<group>"; };
84B8DA84152CA99C00D59B95 /* seismic_video.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = seismic_video.h; path = ../seismic_video.h; sourceTree = "<group>"; };
84B8DA85152CA99C00D59B95 /* universe.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = universe.cpp; path = ../universe.cpp; sourceTree = "<group>"; };
84B8DA86152CA99C00D59B95 /* universe.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = universe.h; path = ../universe.h; sourceTree = "<group>"; };
84B8DA99152CADF400D59B95 /* macvideo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = macvideo.cpp; path = ../../../common/gui/macvideo.cpp; sourceTree = "<group>"; };
84D017511527431F0008A4E0 /* tbbExample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = tbbExample.app; sourceTree = BUILT_PRODUCTS_DIR; };
84D017551527431F0008A4E0 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; };
84D017581527431F0008A4E0 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; };
84D017591527431F0008A4E0 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = System/Library/Frameworks/CoreData.framework; sourceTree = SDKROOT; };
84D0175A1527431F0008A4E0 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
84D01775152744BD0008A4E0 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = System/Library/Frameworks/OpenGL.framework; sourceTree = SDKROOT; };
D3BD966D1C0DD00400163D8B /* tbbExample-Info.ios.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = "tbbExample-Info.ios.plist"; path = "../../../common/gui/xcode/tbbExample/tbbExample-Info.ios.plist"; sourceTree = "<group>"; };
D3BD96A51C0DE3DE00163D8B /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = ../../../common/gui/xcode/tbbExample/main.m; sourceTree = "<group>"; };
D3BD96B41C0E0B2200163D8B /* tbbExample-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = "tbbExample-Info.plist"; path = "../../../common/gui/xcode/tbbExample/tbbExample-Info.plist"; sourceTree = "<group>"; };
D3BD96B61C0E11C600163D8B /* iOS.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = iOS.storyboard; path = ../iOS.storyboard; sourceTree = "<group>"; };
D3BD96BB1C0E19E700163D8B /* tbbExample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = tbbExample.app; sourceTree = BUILT_PRODUCTS_DIR; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
84D0174E1527431F0008A4E0 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
84D01776152744BD0008A4E0 /* OpenGL.framework in Frameworks */,
84D017561527431F0008A4E0 /* Cocoa.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
D3BD96571C0DD00400163D8B /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
84B8DA6C152CA8D900D59B95 /* tbbExample Sources */ = {
isa = PBXGroup;
children = (
84B8DA7B152CA97B00D59B95 /* Resources */,
84B8DA82152CA99C00D59B95 /* main.cpp */,
D3BD96A51C0DE3DE00163D8B /* main.m */,
84B8DA83152CA99C00D59B95 /* seismic_video.cpp */,
84B8DA84152CA99C00D59B95 /* seismic_video.h */,
84B8DA85152CA99C00D59B95 /* universe.cpp */,
84B8DA86152CA99C00D59B95 /* universe.h */,
);
name = "tbbExample Sources";
sourceTree = "<group>";
};
84B8DA7B152CA97B00D59B95 /* Resources */ = {
isa = PBXGroup;
children = (
D3BD96B61C0E11C600163D8B /* iOS.storyboard */,
84B8DA7C152CA97B00D59B95 /* InfoPlist.strings */,
84B8DA7E152CA97B00D59B95 /* MainMenu.xib */,
);
name = Resources;
path = ../../../common/gui/xcode/tbbExample/en.lproj;
sourceTree = "<group>";
};
84B8DA98152CAD8600D59B95 /* Gui layer */ = {
isa = PBXGroup;
children = (
84B8DA99152CADF400D59B95 /* macvideo.cpp */,
84B8DA70152CA90100D59B95 /* OpenGLView.h */,
84B8DA71152CA90100D59B95 /* OpenGLView.m */,
84B8DA72152CA90100D59B95 /* tbbAppDelegate.h */,
84B8DA73152CA90100D59B95 /* tbbAppDelegate.m */,
84B8DA75152CA90100D59B95 /* tbbExample-Prefix.pch */,
);
name = "Gui layer";
sourceTree = "<group>";
};
84D017461527431F0008A4E0 = {
isa = PBXGroup;
children = (
D3BD96B41C0E0B2200163D8B /* tbbExample-Info.plist */,
D3BD966D1C0DD00400163D8B /* tbbExample-Info.ios.plist */,
84B8DA98152CAD8600D59B95 /* Gui layer */,
84B8DA6C152CA8D900D59B95 /* tbbExample Sources */,
84D017541527431F0008A4E0 /* Frameworks */,
84D017521527431F0008A4E0 /* Products */,
);
sourceTree = "<group>";
};
84D017521527431F0008A4E0 /* Products */ = {
isa = PBXGroup;
children = (
84D017511527431F0008A4E0 /* tbbExample.app */,
D3BD96BB1C0E19E700163D8B /* tbbExample.app */,
);
name = Products;
sourceTree = "<group>";
};
84D017541527431F0008A4E0 /* Frameworks */ = {
isa = PBXGroup;
children = (
84D017591527431F0008A4E0 /* CoreData.framework */,
84D0175A1527431F0008A4E0 /* Foundation.framework */,
84D017581527431F0008A4E0 /* AppKit.framework */,
84D01775152744BD0008A4E0 /* OpenGL.framework */,
84D017551527431F0008A4E0 /* Cocoa.framework */,
);
name = Frameworks;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
84D017501527431F0008A4E0 /* tbbExample */ = {
isa = PBXNativeTarget;
buildConfigurationList = 84D01772152743200008A4E0 /* Build configuration list for PBXNativeTarget "tbbExample" */;
buildPhases = (
84D0174D1527431F0008A4E0 /* Sources */,
84D0174E1527431F0008A4E0 /* Frameworks */,
84D0174F1527431F0008A4E0 /* Resources */,
);
buildRules = (
C3C5896E2191923E00DAC94C /* PBXBuildRule */,
);
dependencies = (
);
name = tbbExample;
productName = tbbExample;
productReference = 84D017511527431F0008A4E0 /* tbbExample.app */;
productType = "com.apple.product-type.application";
};
D3BD96591C0DD00400163D8B /* tbbExample_ios */ = {
isa = PBXNativeTarget;
buildConfigurationList = D3BD96841C0DD00500163D8B /* Build configuration list for PBXNativeTarget "tbbExample_ios" */;
buildPhases = (
D3BD96561C0DD00400163D8B /* Sources */,
D3BD96571C0DD00400163D8B /* Frameworks */,
D3BD96581C0DD00400163D8B /* Resources */,
);
buildRules = (
C3C5896F2191925E00DAC94C /* PBXBuildRule */,
);
dependencies = (
);
name = tbbExample_ios;
productName = tbbExample_ios;
productReference = D3BD96BB1C0E19E700163D8B /* tbbExample.app */;
productType = "com.apple.product-type.application";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
84D017481527431F0008A4E0 /* Project object */ = {
isa = PBXProject;
attributes = {
CLASSPREFIX = tbb;
LastUpgradeCheck = 0710;
TargetAttributes = {
D3BD96591C0DD00400163D8B = {
CreatedOnToolsVersion = 7.1.1;
DevelopmentTeam = 7J8M3RM94C;
};
};
};
buildConfigurationList = 84D0174B1527431F0008A4E0 /* Build configuration list for PBXProject "seismic" */;
compatibilityVersion = "Xcode 3.2";
developmentRegion = English;
hasScannedForEncodings = 0;
knownRegions = (
en,
Base,
);
mainGroup = 84D017461527431F0008A4E0;
productRefGroup = 84D017521527431F0008A4E0 /* Products */;
projectDirPath = "";
projectRoot = "";
targets = (
84D017501527431F0008A4E0 /* tbbExample */,
D3BD96591C0DD00400163D8B /* tbbExample_ios */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
84D0174F1527431F0008A4E0 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
D3BD96B51C0E0B2200163D8B /* tbbExample-Info.plist in Resources */,
84B8DA7A152CA90100D59B95 /* (null) in Resources */,
84B8DA80152CA97B00D59B95 /* InfoPlist.strings in Resources */,
84B8DA81152CA97B00D59B95 /* MainMenu.xib in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
D3BD96581C0DD00400163D8B /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
D3BD96B81C0E11CE00163D8B /* iOS.storyboard in Resources */,
D3BD96B31C0E0AFE00163D8B /* tbbExample-Info.ios.plist in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
84D0174D1527431F0008A4E0 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
84B8DA78152CA90100D59B95 /* OpenGLView.m in Sources */,
84B8DA79152CA90100D59B95 /* tbbAppDelegate.m in Sources */,
84B8DA87152CA99C00D59B95 /* main.cpp in Sources */,
D3BD96A31C0DE2BB00163D8B /* macvideo.cpp in Sources */,
84B8DA88152CA99C00D59B95 /* seismic_video.cpp in Sources */,
D3BD96A61C0DE3DE00163D8B /* main.m in Sources */,
84B8DA89152CA99C00D59B95 /* universe.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
D3BD96561C0DD00400163D8B /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
D3BD96941C0DD57600163D8B /* universe.cpp in Sources */,
D3BD96921C0DD55E00163D8B /* main.cpp in Sources */,
D3BD96951C0DD59200163D8B /* macvideo.cpp in Sources */,
D3BD96931C0DD56900163D8B /* seismic_video.cpp in Sources */,
D3BD96971C0DD5A900163D8B /* tbbAppDelegate.m in Sources */,
D3BD96AB1C0E08E500163D8B /* main.m in Sources */,
D3BD96961C0DD5A000163D8B /* OpenGLView.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXVariantGroup section */
84B8DA7C152CA97B00D59B95 /* InfoPlist.strings */ = {
isa = PBXVariantGroup;
children = (
84B8DA7D152CA97B00D59B95 /* en */,
);
name = InfoPlist.strings;
sourceTree = "<group>";
};
84B8DA7E152CA97B00D59B95 /* MainMenu.xib */ = {
isa = PBXVariantGroup;
children = (
84B8DA7F152CA97B00D59B95 /* en */,
);
name = MainMenu.xib;
sourceTree = "<group>";
};
/* End PBXVariantGroup section */
/* Begin XCBuildConfiguration section */
84D01770152743200008A4E0 /* Debug64 */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_CXX_LANGUAGE_STANDARD = "c++11";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COPY_PHASE_STRIP = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = c11;
GCC_DYNAMIC_NO_PIC = NO;
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
GCC_INCREASE_PRECOMPILED_HEADER_SHARING = NO;
GCC_NO_COMMON_BLOCKS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(inherited)",
);
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
GCC_VERSION = "";
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
HEADER_SEARCH_PATHS = (
"$(TBBROOT)/include",
/opt/intel/tbb/include,
);
ICC_CXX_LANG_DIALECT = "c++11";
ICC_TBB = YES;
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
LD_RUNPATH_SEARCH_PATHS = "$(TBBROOT)/lib /opt/intel/tbb/lib";
LIBRARY_SEARCH_PATHS = (
"$(TBBROOT)/lib",
/opt/intel/tbb/lib,
);
MACOSX_DEPLOYMENT_TARGET = 10.11;
ONLY_ACTIVE_ARCH = YES;
OTHER_LDFLAGS = (
"-m64",
"-ltbb_debug",
);
SDKROOT = macosx;
VALID_ARCHS = x86_64;
};
name = Debug64;
};
84D01771152743200008A4E0 /* Release64 */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_CXX_LANGUAGE_STANDARD = "c++11";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COPY_PHASE_STRIP = YES;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = c11;
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
GCC_INCREASE_PRECOMPILED_HEADER_SHARING = NO;
GCC_NO_COMMON_BLOCKS = YES;
GCC_VERSION = "";
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
HEADER_SEARCH_PATHS = (
"$(TBBROOT)/include",
/opt/intel/tbb/include,
);
ICC_CXX_LANG_DIALECT = "c++11";
ICC_TBB = YES;
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
LD_RUNPATH_SEARCH_PATHS = "$(TBBROOT)/lib /opt/intel/tbb/lib";
LIBRARY_SEARCH_PATHS = (
"$(TBBROOT)/lib",
/opt/intel/tbb/lib,
);
MACOSX_DEPLOYMENT_TARGET = 10.11;
OTHER_LDFLAGS = (
"-m64",
"-ltbb",
);
SDKROOT = macosx;
VALID_ARCHS = x86_64;
};
name = Release64;
};
84D01773152743200008A4E0 /* Debug64 */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(ARCHS_STANDARD)";
CLANG_ENABLE_OBJC_ARC = NO;
COMBINE_HIDPI_IMAGES = YES;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "../../../common/gui/xcode/tbbExample/tbbExample-Prefix.pch";
HEADER_SEARCH_PATHS = "$(inherited)";
INFOPLIST_FILE = "../../../common/gui/xcode/tbbExample/tbbExample-Info.plist";
LD_RUNPATH_SEARCH_PATHS = "$(inherited)";
LIBRARY_SEARCH_PATHS = "$(inherited)";
MACOSX_DEPLOYMENT_TARGET = 10.11;
PRODUCT_BUNDLE_IDENTIFIER = "Intel.${PRODUCT_NAME:rfc1034identifier}";
PRODUCT_NAME = "$(TARGET_NAME)";
RUN_CLANG_STATIC_ANALYZER = YES;
USER_HEADER_SEARCH_PATHS = "";
VERSION_INFO_BUILDER = "$(TARGET_NAME)";
WRAPPER_EXTENSION = app;
};
name = Debug64;
};
84D01774152743200008A4E0 /* Release64 */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(ARCHS_STANDARD)";
CLANG_ENABLE_OBJC_ARC = NO;
COMBINE_HIDPI_IMAGES = YES;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "../../../common/gui/xcode/tbbExample/tbbExample-Prefix.pch";
HEADER_SEARCH_PATHS = "$(inherited)";
INFOPLIST_FILE = "../../../common/gui/xcode/tbbExample/tbbExample-Info.plist";
LD_RUNPATH_SEARCH_PATHS = "$(inherited)";
LIBRARY_SEARCH_PATHS = "$(inherited)";
MACOSX_DEPLOYMENT_TARGET = 10.11;
PRODUCT_BUNDLE_IDENTIFIER = "Intel.${PRODUCT_NAME:rfc1034identifier}";
PRODUCT_NAME = "$(TARGET_NAME)";
RUN_CLANG_STATIC_ANALYZER = YES;
USER_HEADER_SEARCH_PATHS = "";
VERSION_INFO_BUILDER = "$(TARGET_NAME)";
WRAPPER_EXTENSION = app;
};
name = Release64;
};
D3BD96851C0DD00500163D8B /* Debug64 */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
DEBUG_INFORMATION_FORMAT = dwarf;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
GCC_NO_COMMON_BLOCKS = YES;
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(inherited)",
"__TBB_IOS=1",
);
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
INFOPLIST_FILE = "../../../common/gui/xcode/tbbExample/tbbExample-Info.ios.plist";
IPHONEOS_DEPLOYMENT_TARGET = 9.1;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path";
LIBRARY_SEARCH_PATHS = "\"$(SRCROOT)/../../../../lib/ios\"";
MTL_ENABLE_DEBUG_INFO = YES;
PRODUCT_BUNDLE_IDENTIFIER = com.tbb.example;
PRODUCT_NAME = tbbExample;
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = 1;
};
name = Debug64;
};
D3BD96861C0DD00500163D8B /* Release64 */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = NO;
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_NO_COMMON_BLOCKS = YES;
GCC_PREPROCESSOR_DEFINITIONS = "__TBB_IOS=1";
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
INFOPLIST_FILE = "../../../common/gui/xcode/tbbExample/tbbExample-Info.ios.plist";
IPHONEOS_DEPLOYMENT_TARGET = 9.1;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path";
LIBRARY_SEARCH_PATHS = "\"$(SRCROOT)/../../../../lib/ios\"";
MTL_ENABLE_DEBUG_INFO = NO;
PRODUCT_BUNDLE_IDENTIFIER = com.tbb.example;
PRODUCT_NAME = tbbExample;
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = 1;
VALIDATE_PRODUCT = YES;
};
name = Release64;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
84D0174B1527431F0008A4E0 /* Build configuration list for PBXProject "seismic" */ = {
isa = XCConfigurationList;
buildConfigurations = (
84D01770152743200008A4E0 /* Debug64 */,
84D01771152743200008A4E0 /* Release64 */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release64;
};
84D01772152743200008A4E0 /* Build configuration list for PBXNativeTarget "tbbExample" */ = {
isa = XCConfigurationList;
buildConfigurations = (
84D01773152743200008A4E0 /* Debug64 */,
84D01774152743200008A4E0 /* Release64 */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release64;
};
D3BD96841C0DD00500163D8B /* Build configuration list for PBXNativeTarget "tbbExample_ios" */ = {
isa = XCConfigurationList;
buildConfigurations = (
D3BD96851C0DD00500163D8B /* Debug64 */,
D3BD96861C0DD00500163D8B /* Release64 */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release64;
};
/* End XCConfigurationList section */
};
rootObject = 84D017481527431F0008A4E0 /* Project object */;
}

View File

@@ -0,0 +1,119 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0710"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "D3BD96591C0DD00400163D8B"
BuildableName = "tbbExample.app"
BlueprintName = "tbbExample_ios"
ReferencedContainer = "container:seismic.xcodeproj">
</BuildableReference>
</BuildActionEntry>
<BuildActionEntry
buildForTesting = "NO"
buildForRunning = "NO"
buildForProfiling = "NO"
buildForArchiving = "NO"
buildForAnalyzing = "NO">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "D3BD96711C0DD00400163D8B"
BuildableName = "com.tbb.exampleTests.xctest"
BlueprintName = "com.tbb.exampleTests"
ReferencedContainer = "container:seismic.xcodeproj">
</BuildableReference>
</BuildActionEntry>
<BuildActionEntry
buildForTesting = "NO"
buildForRunning = "NO"
buildForProfiling = "NO"
buildForArchiving = "NO"
buildForAnalyzing = "NO">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "D3BD967C1C0DD00500163D8B"
BuildableName = "com.tbb.exampleUITests.xctest"
BlueprintName = "com.tbb.exampleUITests"
ReferencedContainer = "container:seismic.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
</Testables>
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "D3BD96591C0DD00400163D8B"
BuildableName = "tbbExample.app"
BlueprintName = "tbbExample_ios"
ReferencedContainer = "container:seismic.xcodeproj">
</BuildableReference>
</MacroExpansion>
<AdditionalOptions>
</AdditionalOptions>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "D3BD96591C0DD00400163D8B"
BuildableName = "tbbExample.app"
BlueprintName = "tbbExample_ios"
ReferencedContainer = "container:seismic.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "D3BD96591C0DD00400163D8B"
BuildableName = "tbbExample.app"
BlueprintName = "tbbExample_ios"
ReferencedContainer = "container:seismic.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>

View File

@@ -0,0 +1,99 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0710"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "84D017501527431F0008A4E0"
BuildableName = "tbbExample.app"
BlueprintName = "tbbExample"
ReferencedContainer = "container:tbbExample.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
</Testables>
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "84D017501527431F0008A4E0"
BuildableName = "tbbExample.app"
BlueprintName = "tbbExample"
ReferencedContainer = "container:seismic.xcodeproj">
</BuildableReference>
</MacroExpansion>
<AdditionalOptions>
</AdditionalOptions>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
customWorkingDirectory = "/tmp"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "NO"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "84D017501527431F0008A4E0"
BuildableName = "tbbExample.app"
BlueprintName = "tbbExample"
ReferencedContainer = "container:seismic.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
<EnvironmentVariables>
<EnvironmentVariable
key = "DYLD_LIBRARY_PATH"
value = "$(SRCROOT)/../../../../lib"
isEnabled = "YES">
</EnvironmentVariable>
</EnvironmentVariables>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "84D017501527431F0008A4E0"
BuildableName = "tbbExample.app"
BlueprintName = "tbbExample"
ReferencedContainer = "container:tbbExample.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>