﻿<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ja">
	<id>https://wiki.blender.jp/index.php?action=history&amp;feed=atom&amp;title=Dev%3A2.4%2FSource%2FRender%2FYafray%2FBuildProposals</id>
	<title>Dev:2.4/Source/Render/Yafray/BuildProposals - 版の履歴</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.blender.jp/index.php?action=history&amp;feed=atom&amp;title=Dev%3A2.4%2FSource%2FRender%2FYafray%2FBuildProposals"/>
	<link rel="alternate" type="text/html" href="https://wiki.blender.jp/index.php?title=Dev:2.4/Source/Render/Yafray/BuildProposals&amp;action=history"/>
	<updated>2026-07-04T05:45:56Z</updated>
	<subtitle>このウィキのこのページに関する変更履歴</subtitle>
	<generator>MediaWiki 1.31.0</generator>
	<entry>
		<id>https://wiki.blender.jp/index.php?title=Dev:2.4/Source/Render/Yafray/BuildProposals&amp;diff=41600&amp;oldid=prev</id>
		<title>Yamyam: 1版 をインポートしました</title>
		<link rel="alternate" type="text/html" href="https://wiki.blender.jp/index.php?title=Dev:2.4/Source/Render/Yafray/BuildProposals&amp;diff=41600&amp;oldid=prev"/>
		<updated>2018-06-28T17:45:09Z</updated>

		<summary type="html">&lt;p&gt;1版 をインポートしました&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ja&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← 古い版&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;2018年6月28日 (木) 17:45時点における版&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;ja&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(相違点なし)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Yamyam</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.blender.jp/index.php?title=Dev:2.4/Source/Render/Yafray/BuildProposals&amp;diff=41599&amp;oldid=prev</id>
		<title>wiki&gt;Terrywallwork: /* Proposed design */</title>
		<link rel="alternate" type="text/html" href="https://wiki.blender.jp/index.php?title=Dev:2.4/Source/Render/Yafray/BuildProposals&amp;diff=41599&amp;oldid=prev"/>
		<updated>2010-03-30T20:19:25Z</updated>

		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Proposed design&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&gt;&lt;div&gt;=Yafray directory structure=&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
This document outlines the proposed file and directory layout for the Yafray redesign. We'll attempt to list all the requirements for the directory structure, and then a solution that fulfills all those requirements.&lt;br /&gt;
&lt;br /&gt;
==Requirements==&lt;br /&gt;
&lt;br /&gt;
Yafray must:&lt;br /&gt;
&lt;br /&gt;
* Compile without user intervention on at least &lt;br /&gt;
* Windows&lt;br /&gt;
* Linux&lt;br /&gt;
* Mac OSX&lt;br /&gt;
* Have a safe structure to allow parts of yafray to be used as libraries in 3rd party products e.g. Blender, Aztec with minimal risk of namespace or include file pollution.&lt;br /&gt;
* Have a public set of header files and libraries that are easy to redistribute independant of the implemenation source code to allow shader authors to easily use the yafray core to extend yafray.&lt;br /&gt;
* Compile cleanly without polluting the source direcories with files&lt;br /&gt;
* Be able to produce a variety of independant builds, such as debug vs release versions, or any other permutation.&lt;br /&gt;
&lt;br /&gt;
==Implications of the requirements==&lt;br /&gt;
&lt;br /&gt;
===Compile on Windows===&lt;br /&gt;
&lt;br /&gt;
There are no known restrictions or limitations on directory structures when compiling on windows&lt;br /&gt;
Compile on Linux&lt;br /&gt;
&lt;br /&gt;
Building shared libraries results in a variety of .so files which applications require during link time and at run time. To correctly link in shared libraries, .so files need to be in an accessible place during both linking and run time.&lt;br /&gt;
&lt;br /&gt;
===Compile on Mac OSX===&lt;br /&gt;
&lt;br /&gt;
Mac OSX makes use of an unique concept called Frameworks. Frameworks bundle together header files, libraries and other resources together in a standard directory structure to enable client code to easily set up include and lib direcories when compiling. It is useful to set up the directory structure of a project to match what Frameworks need because&lt;br /&gt;
&lt;br /&gt;
1. It makes it easier when dealing with Mac OSX and shared libraries&lt;br /&gt;
1. Its a useful way to organise header files and source code even for other platforms.&lt;br /&gt;
1. Even though SCons doesn't easily support building of frameworks now, it may in the future, and if we are prepared for it now, it will be easier later on&lt;br /&gt;
&lt;br /&gt;
==Proposed design==&lt;br /&gt;
&lt;br /&gt;
Taking the above points into consideration, we come up with a few key results:&lt;br /&gt;
&lt;br /&gt;
* Public header files must be separate from the implementation of each library&lt;br /&gt;
* Source and header files for each library must be physically separate.&lt;br /&gt;
* For #include directives, all must use &amp;lt;&amp;gt; and have distict relative paths, such as &amp;lt;yafraycore/vector3d.h&amp;gt; or for files that do not exist in a specific library, give a distinctive file name, such as yafray_config.h&lt;br /&gt;
&lt;br /&gt;
So with these in mind, the following structure is appropriate&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
yafray/&lt;br /&gt;
include/&lt;br /&gt;
yafraycore/&lt;br /&gt;
vector3d.h&lt;br /&gt;
light.h&lt;br /&gt;
renderer.h&lt;br /&gt;
...&lt;br /&gt;
yafrayinterface/&lt;br /&gt;
manager.h&lt;br /&gt;
configuration.h&lt;br /&gt;
...&lt;br /&gt;
src/&lt;br /&gt;
yafraycore/&lt;br /&gt;
vector3d.cpp&lt;br /&gt;
light.cpp&lt;br /&gt;
renderer.cpp&lt;br /&gt;
implementation_suff.h&lt;br /&gt;
...&lt;br /&gt;
yafrayinterface/&lt;br /&gt;
...&lt;br /&gt;
yafraystandalone/&lt;br /&gt;
main.cpp&lt;br /&gt;
...&lt;br /&gt;
StandardShaders/&lt;br /&gt;
phong.cpp&lt;br /&gt;
lambert.cpp&lt;br /&gt;
plugin.cpp&lt;br /&gt;
StandardBackgrounds/&lt;br /&gt;
sunsky.cpp&lt;br /&gt;
hdri.cpp&lt;br /&gt;
plugin.cpp&lt;br /&gt;
redist/&lt;br /&gt;
debug/&lt;br /&gt;
win32-msvc/&lt;br /&gt;
bin/&lt;br /&gt;
yafraycore.dll&lt;br /&gt;
yafray.exe&lt;br /&gt;
lib/&lt;br /&gt;
yafraycore.lib&lt;br /&gt;
yafraycore.dll&lt;br /&gt;
yafraycore.exp&lt;br /&gt;
obj/&lt;br /&gt;
yafraycore/&lt;br /&gt;
*.obj&lt;br /&gt;
yafraystandalone/&lt;br /&gt;
*.obj&lt;br /&gt;
StandardShaders/&lt;br /&gt;
*.obj&lt;br /&gt;
StandardBackgrounds/&lt;br /&gt;
*.obj&lt;br /&gt;
win32-mingw/&lt;br /&gt;
bin/&lt;br /&gt;
yafraycore.dll&lt;br /&gt;
yafray.exe&lt;br /&gt;
lib/&lt;br /&gt;
yafraycore.a&lt;br /&gt;
yafraycore.dll&lt;br /&gt;
obj/&lt;br /&gt;
yafraycore/&lt;br /&gt;
*.o&lt;br /&gt;
yafraystandalone/&lt;br /&gt;
*.o&lt;br /&gt;
StandardShaders/&lt;br /&gt;
*.o&lt;br /&gt;
StandardBackgrounds/&lt;br /&gt;
*.o&lt;br /&gt;
linux32-gcc/&lt;br /&gt;
bin/&lt;br /&gt;
yafray&lt;br /&gt;
lib/&lt;br /&gt;
yafraycore.so&lt;br /&gt;
obj/&lt;br /&gt;
yafraycore/&lt;br /&gt;
*.o&lt;br /&gt;
yafraystandalone/&lt;br /&gt;
*.o&lt;br /&gt;
StandardShaders/&lt;br /&gt;
*.o&lt;br /&gt;
StandardBackgrounds/&lt;br /&gt;
*.o&lt;br /&gt;
macosx-codewarror/&lt;br /&gt;
?&lt;br /&gt;
macosx-gcc/&lt;br /&gt;
?&lt;br /&gt;
common/&lt;br /&gt;
yafray-gram.blah&lt;br /&gt;
release/&lt;br /&gt;
Same as the debug structure&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- Philip Martin - 16 Nov 2004&lt;/div&gt;</summary>
		<author><name>wiki&gt;Terrywallwork</name></author>
		
	</entry>
</feed>