@Jordi wrote:
Usually, it is preferable to clone the empty example or use project generator, but sometimes I wanted to know what are the exact steps to turn a VS C++ project into an OF project.
So here we go:Visual Studio OF project from scratch
From now on Visual Studio(VS), Openframeworks (OF).
Create a folder to host a set of projects. (optional)
go to your openframeworks/apps folder.
mkdir newSetOfProjectsCreate Visual Studio project
File -> new -> project
Visual C++/Win32 Console Application
Create Subdirectory must be unchecked
Name: newProject
Location: openFrameworks\apps\newSetOfProjects\newProject\
OK
next
check empty project
finishCopy "src" folder from empty example:
In terminal:
cd newProject
cp -r ../../../examples/empty/emptyExample/src ./srcImport sources to project.
Go to VS:
Delete automatically created filers in project (Headers, Resource files, Source)
Add new filter "src": Right Click on project, add.../filter-> src
Add files located at src: Right click on filter src, add, existing items... main, ofApp.h, ofApp.cpp
At this point trying to compile will throw:Error C1083 Cannot open include file: 'ofMain.h': No such file or directory
This is because this project has no openframeorks yet.
Close VS.Import OF project to solution.
Open newProject.sln in a text editor and add openframeworks project. To do so, add these lines right after "EndProject", and before "Global".Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "openframeworksLib", "..\..\..\libs\openFrameworksCompiled\project\vs\openframeworksLib.vcxproj", "{5837595D-ACA9-485C-8E76-729040CE4B0B}" EndProject
Save and Close.
Link OF project to our project.
Open newProject.vcxproj in a text editor, and right after:<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
Add these lines:
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets"> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> <Import Project="..\..\..\libs\openFrameworksCompiled\project\vs\openFrameworksRelease.props" /> </ImportGroup> <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets"> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> <Import Project="..\..\..\libs\openFrameworksCompiled\project\vs\openFrameworksRelease.props" /> </ImportGroup> <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets"> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> <Import Project="..\..\..\libs\openFrameworksCompiled\project\vs\openFrameworksDebug.props" /> </ImportGroup> <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets"> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> <Import Project="..\..\..\libs\openFrameworksCompiled\project\vs\openFrameworksDebug.props" /> </ImportGroup>
Then, at the end of the file, after the last:
</ItemGroup>
add these:
<ItemGroup> <ProjectReference Include="$(OF_ROOT)\libs\openFrameworksCompiled\project\vs\openframeworksLib.vcxproj"> <Project>{5837595d-aca9-485c-8e76-729040ce4b0b}</Project> </ProjectReference> </ItemGroup>
Save and Close.
Finally, to build and run:
Open VS
Right click on NewProject -> Set as Startup Project.
Press F5 to build and run.
Posts: 1
Participants: 1