diff --git a/.gitignore b/.gitignore index 2fd9806..274e214 100644 --- a/.gitignore +++ b/.gitignore @@ -20,3 +20,7 @@ src/config.hpp src/config.hpp.in~ src/revision.hpp mkdssp +msvc/x64/ +.vscode/ +.vs/ + diff --git a/msvc/mkdssp.sln b/msvc/mkdssp.sln new file mode 100644 index 0000000..677892c --- /dev/null +++ b/msvc/mkdssp.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.31025.194 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mkdssp", "mkdssp.vcxproj", "{AA05C8D5-829B-4F96-A3E6-E734FB3A1B1E}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x64 = Debug|x64 + Release|x64 = Release|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {AA05C8D5-829B-4F96-A3E6-E734FB3A1B1E}.Debug|x64.ActiveCfg = Debug|x64 + {AA05C8D5-829B-4F96-A3E6-E734FB3A1B1E}.Debug|x64.Build.0 = Debug|x64 + {AA05C8D5-829B-4F96-A3E6-E734FB3A1B1E}.Release|x64.ActiveCfg = Release|x64 + {AA05C8D5-829B-4F96-A3E6-E734FB3A1B1E}.Release|x64.Build.0 = Release|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {15535352-DFF9-46BB-A6F8-9E3E2B54024F} + EndGlobalSection +EndGlobal diff --git a/msvc/mkdssp.vcxproj b/msvc/mkdssp.vcxproj new file mode 100644 index 0000000..e9812aa --- /dev/null +++ b/msvc/mkdssp.vcxproj @@ -0,0 +1,139 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 16.0 + {AA05C8D5-829B-4F96-A3E6-E734FB3A1B1E} + Win32Proj + 10.0 + + + + Application + true + v142 + + + Application + false + v142 + + + Application + true + v142 + + + Application + false + v142 + + + + + + + + + + + + + + + + + + + + + true + + + true + + + $(VC_IncludePath);$(WindowsSDK_IncludePath);$(SolutionDir)\..\..\boost_1_75_0;$(SolutionDir)\..\..\libcifpp\include + $(VC_LibraryPath_x64);$(WindowsSDK_LibraryPath_x64);$(SolutionDir)\..\..\boost_1_75_0\stage\lib;$(SolutionDir)\..\..\libcifpp\msvc\$(Platform)\$(Configuration) + + + $(VC_IncludePath);$(WindowsSDK_IncludePath);$(SolutionDir)\..\..\boost_1_75_0;$(SolutionDir)\..\..\libcifpp\include + $(VC_LibraryPath_x64);$(WindowsSDK_LibraryPath_x64);$(SolutionDir)\..\..\boost_1_75_0\stage\lib;$(SolutionDir)\..\..\libcifpp\msvc\$(Platform)\$(Configuration) + + + + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + Level3 + ProgramDatabase + Disabled + + + MachineX86 + true + Windows + + + + + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + ProgramDatabase + + + MachineX86 + true + Windows + true + true + + + + + stdcpp17 + MultiThreaded + true + true + $(SolutionDir)\..\src + + + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;libcifpp.lib;%(AdditionalDependencies) + + + + + MultiThreadedDebug + stdcpp17 + true + true + $(SolutionDir)\..\src + + + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;libcifpp.lib;%(AdditionalDependencies) + + + + + + + + + \ No newline at end of file diff --git a/msvc/mkdssp.vcxproj.filters b/msvc/mkdssp.vcxproj.filters new file mode 100644 index 0000000..f472dbd --- /dev/null +++ b/msvc/mkdssp.vcxproj.filters @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav + + + + + Source Files + + + \ No newline at end of file diff --git a/msvc/mkdssp.vcxproj.user b/msvc/mkdssp.vcxproj.user new file mode 100644 index 0000000..751ce42 --- /dev/null +++ b/msvc/mkdssp.vcxproj.user @@ -0,0 +1,13 @@ + + + + ../libcifpp/examples/1cbs.cif.gz + $(SolutionDir)\..\ + WindowsLocalDebugger + + + ../libcifpp/examples/1cbs.cif.gz + $(SolutionDir)\..\ + WindowsLocalDebugger + + \ No newline at end of file diff --git a/src/mkdssp.cpp b/src/mkdssp.cpp index ef8ba41..b188351 100644 --- a/src/mkdssp.cpp +++ b/src/mkdssp.cpp @@ -24,7 +24,9 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +#if __has_include("config.hpp") #include "config.hpp" +#endif #include #include @@ -78,7 +80,11 @@ void load_version_info() rxVersionDate(R"(Date: +(\d{4}-\d{2}-\d{2}).*)"), rxVersionNr2(R"(mkdssp-version: (\d+(?:\.\d+)+))"); +#if __has_include("revision.hpp") #include "revision.hpp" +#else + const char* kRevision = ""; +#endif struct membuf : public std::streambuf { diff --git a/src/pr-main.cpp b/src/pr-main.cpp index 9b114ce..ab1a59f 100644 --- a/src/pr-main.cpp +++ b/src/pr-main.cpp @@ -25,10 +25,13 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#include "dssp.hpp" - +#if _MSC_VER +#include +#include +#else #include #include +#endif #include #include @@ -113,6 +116,7 @@ class RUsage public: ~RUsage() { +#if not _MSC_VER if (cif::VERBOSE) { struct rusage u; @@ -127,6 +131,7 @@ class RUsage else perror("Failed to get rusage"); } +#endif } std::chrono::time_point start = std::chrono::system_clock::now(); @@ -144,7 +149,11 @@ void load_version_info() rxVersionNr(R"(build-(\d+)-g[0-9a-f]{7}(-dirty)?)"), rxVersionDate(R"(Date: +(\d{4}-\d{2}-\d{2}).*)"); +#if __has_include("revision.hpp") #include "revision.hpp" +#else + const char* kRevision = ""; +#endif struct membuf : public std::streambuf { @@ -214,6 +223,7 @@ int main(int argc, char* argv[]) try { +#if not _MSC_VER cif::rsrc_loader::init({ { cif::rsrc_loader_type::file, "." }, #if defined DATADIR @@ -223,6 +233,7 @@ int main(int argc, char* argv[]) { cif::rsrc_loader_type::mrsrc, "", { gResourceIndex, gResourceData, gResourceName } } #endif }); +#endif load_version_info();