Skip to content

Commit

Permalink
Merge branch 'dev' into master
Browse files Browse the repository at this point in the history
* dev: (31 commits)
  Add new release
  License.txt: Minor update
  matrixfilereader Help.ipf: Update
  HandleResamplingIfRequested: Increase command buffer
  Change project URL to point to github page
  Tests: Use JUNIT file as artifact
  Tests: Enable JUNIT output
  stdafx.h: Require Windows 10 or later
  Fix compile warnings about unused parameters
  Enhance usage of XOPToolkit functions
  Fix compilation for x64
  Remove encoding conversion for IP6
  Add x64 support
  Add new bricklet types and view codes from Vernissage 2.4 header
  Reformat source code with clang-format
  Add .clang-format
  create-public-release.sh: Adapt to newer VS version
  Raise version to 0.26
  Tests: Shortend directory names in the new version
  dataFolderExists: Make it work with IP8 again
  ...
  • Loading branch information
t-b committed Aug 3, 2020
2 parents f8b6de6 + 5b74f7c commit 389dcb2
Show file tree
Hide file tree
Showing 64 changed files with 3,729 additions and 8,758 deletions.
4 changes: 2 additions & 2 deletions License.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Copyright (C) 2009-2017, Thomas Braun, thomas <dot> braun <aeht> byte <minus> physics <dot> de
Copyright (C) 2009-2020, Thomas Braun, thomas <dot> braun <aeht> byte <minus> physics <dot> de

This work was partly done during the work at EMPA Thun, section 127 (nanotech@surfaces, http://www.empa.ch/plugin/template/empa/848/*/---/l=1), Switzerland.

Expand All @@ -9,7 +9,7 @@
Additional permission under GNU GPL version 3 section 7

- The "MatrixFileReader Project" may be statically linked against libraries from the XOP Toolkit (WaveMetrics Incorporated, Portland, USA) to produce an External Operation for Igor Pro.
- Dynamic/Static linking to libraries from the Vernissage Toolkit from Omicron NanoTechnology GmbH, Taunusstein, Germany is also allowed.
- Dynamic/Static linking to libraries from the Vernissage Toolkit from Scienta Omicron, Uppsala, Sweden is also allowed.
- You may copy and distribute such a system following the terms of the GNU Lesser GPL v3 or later for the "MatrixFileReader XOP" and the licenses of the other code/libraries concerned.


Expand Down
39 changes: 25 additions & 14 deletions Readme.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
## Installation

### Requirements
* Igor Pro 6.2.0 or later (Igor Pro 7 works as well)
* Scienta Omicron Vernissage 2.2 or 2.3.x
* Windows XP SP2/Vista/7/10
* Igor Pro 8.0 or later
* Scienta Omicron Vernissage 2.4.1 (32-bit or 64-bit)
* Windows 10

### Steps
1. Install Igor Pro
2. Start Igor, this will create a folder called WaveMetrics in "My Documents"
3. Install Vernissage
4. Install vcredist_x86.exe (Microsoft Visual C++ 2005 Redistributable Package x86) shipped with the XOP.
4. Install vcredist_x86.exe/vcredist_x64.exe (Microsoft Visual C++ 2013 Redistributable Package x86/x64) shipped with the XOP.
5.
1. Copy "matrixfilereader.xop" to "My Documents\WaveMetrics\Igor Pro X User Files\Igor extensions"
2. Copy "matrixfilereader Help.ihf" to "My Documents\WaveMetrics\Igor Pro X User Files\Igor Help files"
Expand All @@ -19,32 +19,43 @@
## Compilation

### Requirements
* Visual Studio 2005 Professional, the Express Version does not work.
* Windows XP SP2/Vista/7/10
* Visual Studio 2013 Community/Professional with [1]
* Vernissage and the corresponding SDK
* XOP Toolkit 7.01
* XOP Toolkit 8.01
* Boost 1.55
* Igor Pro

### Steps
* Close all Igor instances
* Open MatrixFileReader.sln
* Adjust the path where the XOP should be copied by editing copyfiles.bat
* Adjust the path where the XOP should be copied by editing copyfiles-32.bat/copyfiles-64.bat
* Build it (`Build->Rebuild Solution`)
* The XOP and the help file is automatically copied to the location given earlier

### Various Hints
* Always compile the "Release" version. The "Debug" version can not be used with the Vernissage DLLs.
* If you want to add new operations have a look at Operation-Template-Generator.pxp which uses `ParseOperationTemplate`.
* If you want to add new operations have a look at
Operation-Template-Generator.pxp which uses `ParseOperationTemplate`.
* Each header file contains a small abstract about its purpose.
* Boost can be compiled from a Visual Studio command prompt with
`b2 -j6 toolset=msvc-8.0 variant=release threading=multi link=static runtime-link=shared stage`
* XOP Toolkit 7.01 needs to be patched to compile with Visual Studio 2005.
Compilation itself can be done via `cmake -G "Visual Studio 8 2005` and
`cmake --build . --config release`.
* Boost can be compiled from a Visual Studio command prompt:
* Apply the patch from [2]
* Compile 32-bit libraries
* `b2 -j6 toolset=msvc-12.0 variant=release threading=multi link=static runtime-link=shared stage`
* `move stage stage-32bit`
* Compile 64-bit libraries
* `b2 -j6 toolset=msvc-12.0 address-model=64 variant=release threading=multi link=static runtime-link=shared stage`
* `move stage stage-64bit`
* XOPSupport compilation itself can be done via `cmake -G "Visual Studio 12
2013`/`cmake -G "Visual Studio 12 2013" -A x64` and `cmake --build . --config
release`.

### Testing

* The unit and regression test suite requires our [unit testing framework](https://github.com/byte-physics/igor-unit-testing-framework).
* The test suite always finishes without errors.
* The reference data is available upon request only as it is roughly 5GB.

### Links

[1]: https://devblogs.microsoft.com/cppblog/mfc-support-for-mbcs-deprecated-in-visual-studio-2013/
[2]: https://svn.boost.org/trac10/attachment/ticket/8757/0005-Boost.S11n-include-missing-algorithm.patch
67 changes: 67 additions & 0 deletions VC8/.clang-format
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
---
Language: Cpp
# BasedOnStyle: LLVM
AccessModifierOffset: -2
AlignAfterOpenBracket: true
AlignConsecutiveAssignments: true
AlignEscapedNewlinesLeft: false
AlignOperands: true
AlignTrailingComments: true
AllowAllParametersOfDeclarationOnNextLine: true
AllowShortBlocksOnASingleLine: false
AllowShortCaseLabelsOnASingleLine: false
AllowShortFunctionsOnASingleLine: false
AllowShortIfStatementsOnASingleLine: false
AllowShortLoopsOnASingleLine: false
AlwaysBreakAfterDefinitionReturnType: None
AlwaysBreakBeforeMultilineStrings: false
AlwaysBreakTemplateDeclarations: true
BinPackArguments: true
BinPackParameters: true
BreakBeforeBinaryOperators: None
BreakBeforeBraces: Allman
BreakBeforeTernaryOperators: true
BreakConstructorInitializersBeforeComma: false
ColumnLimit: 120
CommentPragmas: '^ IWYU pragma:'
ConstructorInitializerAllOnOneLineOrOnePerLine: false
ConstructorInitializerIndentWidth: 4
ContinuationIndentWidth: 4
Cpp11BracedListStyle: true
DerivePointerAlignment: false
DisableFormat: false
ExperimentalAutoDetectBinPacking: false
ForEachMacros: [ foreach, Q_FOREACH, BOOST_FOREACH ]
IndentCaseLabels: false
IndentWidth: 2
IndentWrappedFunctionNames: false
KeepEmptyLinesAtTheStartOfBlocks: true
MacroBlockBegin: ''
MacroBlockEnd: ''
MaxEmptyLinesToKeep: 1
NamespaceIndentation: None
ObjCBlockIndentWidth: 2
ObjCSpaceAfterProperty: false
ObjCSpaceBeforeProtocolList: true
PenaltyBreakBeforeFirstCallParameter: 19
PenaltyBreakComment: 300
PenaltyBreakFirstLessLess: 120
PenaltyBreakString: 1000
PenaltyExcessCharacter: 1000000
PenaltyReturnTypeOnItsOwnLine: 60
PointerAlignment: Right
SortIncludes: false
SpaceAfterCStyleCast: true
SpaceBeforeAssignmentOperators: true
SpaceBeforeParens: Never
SpaceInEmptyParentheses: false
SpacesBeforeTrailingComments: 1
SpacesInAngles: false
SpacesInContainerLiterals: true
SpacesInCStyleCastParentheses: false
SpacesInParentheses: false
SpacesInSquareBrackets: false
Standard: Cpp11
TabWidth: 2
UseTab: Never
...
4 changes: 2 additions & 2 deletions VC8/ForwardDecl.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,12 @@ class Wave;
// Forward Declare Vernissage classes also
namespace Vernissage
{
class Session;
class Session;
} // namespace Vernissage

namespace Bstrlib
{
struct CBString;
struct CBString;
}

typedef std::pair<Bstrlib::CBString, Bstrlib::CBString> StringPair;
Expand Down
43 changes: 31 additions & 12 deletions VC8/MatrixFileReader.sln
Original file line number Diff line number Diff line change
@@ -1,46 +1,65 @@
Microsoft Visual Studio Solution File, Format Version 9.00
# Visual Studio 2005
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MatrixFileReader", "MatrixFileReader.vcproj", "{93F8C561-7B77-4DEA-8DFC-0686D676DFB4}"
ProjectSection(WebsiteProperties) = preProject
Debug.AspNetCompiler.Debug = "True"
Release.AspNetCompiler.Debug = "False"
EndProjectSection
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2013
VisualStudioVersion = 12.0.40629.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MatrixFileReader", "MatrixFileReader.vcxproj", "{93F8C561-7B77-4DEA-8DFC-0686D676DFB4}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "XOPSupport", "XOPSupport\build\XOPSupport.vcproj", "{DDBFE4DA-947F-3736-8785-D626C012DA6B}"
ProjectSection(WebsiteProperties) = preProject
Debug.AspNetCompiler.Debug = "True"
Release.AspNetCompiler.Debug = "False"
EndProjectSection
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "XOPSupport", "XOPSupport\build\XOPSupport.vcxproj", "{DDBFE4DA-947F-3736-8785-D626C012DA6B}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Debug|x64 = Debug|x64
MinSizeRel|Win32 = MinSizeRel|Win32
MinSizeRel|x64 = MinSizeRel|x64
Release (static build)|Win32 = Release (static build)|Win32
Release (static build)|x64 = Release (static build)|x64
Release|Win32 = Release|Win32
Release|x64 = Release|x64
RelWithDebInfo|Win32 = RelWithDebInfo|Win32
RelWithDebInfo|x64 = RelWithDebInfo|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{93F8C561-7B77-4DEA-8DFC-0686D676DFB4}.Debug|Win32.ActiveCfg = Release (static build)|Win32
{93F8C561-7B77-4DEA-8DFC-0686D676DFB4}.Debug|Win32.Build.0 = Release (static build)|Win32
{93F8C561-7B77-4DEA-8DFC-0686D676DFB4}.Debug|x64.ActiveCfg = Release (static build)|x64
{93F8C561-7B77-4DEA-8DFC-0686D676DFB4}.Debug|x64.Build.0 = Release (static build)|x64
{93F8C561-7B77-4DEA-8DFC-0686D676DFB4}.MinSizeRel|Win32.ActiveCfg = Release (static build)|Win32
{93F8C561-7B77-4DEA-8DFC-0686D676DFB4}.MinSizeRel|Win32.Build.0 = Release (static build)|Win32
{93F8C561-7B77-4DEA-8DFC-0686D676DFB4}.MinSizeRel|x64.ActiveCfg = Release (static build)|x64
{93F8C561-7B77-4DEA-8DFC-0686D676DFB4}.MinSizeRel|x64.Build.0 = Release (static build)|x64
{93F8C561-7B77-4DEA-8DFC-0686D676DFB4}.Release (static build)|Win32.ActiveCfg = Release (static build)|Win32
{93F8C561-7B77-4DEA-8DFC-0686D676DFB4}.Release (static build)|Win32.Build.0 = Release (static build)|Win32
{93F8C561-7B77-4DEA-8DFC-0686D676DFB4}.Release (static build)|x64.ActiveCfg = Release (static build)|x64
{93F8C561-7B77-4DEA-8DFC-0686D676DFB4}.Release (static build)|x64.Build.0 = Release (static build)|x64
{93F8C561-7B77-4DEA-8DFC-0686D676DFB4}.Release|Win32.ActiveCfg = Release|Win32
{93F8C561-7B77-4DEA-8DFC-0686D676DFB4}.Release|Win32.Build.0 = Release|Win32
{93F8C561-7B77-4DEA-8DFC-0686D676DFB4}.Release|x64.ActiveCfg = Release|x64
{93F8C561-7B77-4DEA-8DFC-0686D676DFB4}.Release|x64.Build.0 = Release|x64
{93F8C561-7B77-4DEA-8DFC-0686D676DFB4}.RelWithDebInfo|Win32.ActiveCfg = Release (static build)|Win32
{93F8C561-7B77-4DEA-8DFC-0686D676DFB4}.RelWithDebInfo|Win32.Build.0 = Release (static build)|Win32
{93F8C561-7B77-4DEA-8DFC-0686D676DFB4}.RelWithDebInfo|x64.ActiveCfg = Release (static build)|x64
{93F8C561-7B77-4DEA-8DFC-0686D676DFB4}.RelWithDebInfo|x64.Build.0 = Release (static build)|x64
{DDBFE4DA-947F-3736-8785-D626C012DA6B}.Debug|Win32.ActiveCfg = Debug|Win32
{DDBFE4DA-947F-3736-8785-D626C012DA6B}.Debug|Win32.Build.0 = Debug|Win32
{DDBFE4DA-947F-3736-8785-D626C012DA6B}.Debug|x64.ActiveCfg = Debug|x64
{DDBFE4DA-947F-3736-8785-D626C012DA6B}.Debug|x64.Build.0 = Debug|x64
{DDBFE4DA-947F-3736-8785-D626C012DA6B}.MinSizeRel|Win32.ActiveCfg = MinSizeRel|Win32
{DDBFE4DA-947F-3736-8785-D626C012DA6B}.MinSizeRel|Win32.Build.0 = MinSizeRel|Win32
{DDBFE4DA-947F-3736-8785-D626C012DA6B}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64
{DDBFE4DA-947F-3736-8785-D626C012DA6B}.MinSizeRel|x64.Build.0 = MinSizeRel|x64
{DDBFE4DA-947F-3736-8785-D626C012DA6B}.Release (static build)|Win32.ActiveCfg = Release|Win32
{DDBFE4DA-947F-3736-8785-D626C012DA6B}.Release (static build)|Win32.Build.0 = Release|Win32
{DDBFE4DA-947F-3736-8785-D626C012DA6B}.Release (static build)|x64.ActiveCfg = Release|x64
{DDBFE4DA-947F-3736-8785-D626C012DA6B}.Release (static build)|x64.Build.0 = Release|x64
{DDBFE4DA-947F-3736-8785-D626C012DA6B}.Release|Win32.ActiveCfg = Release|Win32
{DDBFE4DA-947F-3736-8785-D626C012DA6B}.Release|Win32.Build.0 = Release|Win32
{DDBFE4DA-947F-3736-8785-D626C012DA6B}.Release|x64.ActiveCfg = Release|x64
{DDBFE4DA-947F-3736-8785-D626C012DA6B}.Release|x64.Build.0 = Release|x64
{DDBFE4DA-947F-3736-8785-D626C012DA6B}.RelWithDebInfo|Win32.ActiveCfg = RelWithDebInfo|Win32
{DDBFE4DA-947F-3736-8785-D626C012DA6B}.RelWithDebInfo|Win32.Build.0 = RelWithDebInfo|Win32
{DDBFE4DA-947F-3736-8785-D626C012DA6B}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64
{DDBFE4DA-947F-3736-8785-D626C012DA6B}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Expand Down
Loading

0 comments on commit 389dcb2

Please sign in to comment.