Paket and C++ projects? #1467

Closed
konste opened this Issue Feb 9, 2016 · 27 comments

Comments

Projects
None yet
3 participants
@konste
Contributor

konste commented Feb 9, 2016

My colleague reported that Paket does not work right for C++ projects, while NuGet does.
What is the design decision here - is it even supposed to support C++ projects or not?
If it supposed to support C++, then I gather more details about the problem from my colleague.
If it is not supposed to support C++, then can we have Paket and NuGet used in the same solution?

Thank you!
Konstantin

@forki forki added the enhancement label Feb 9, 2016

@forki

This comment has been minimized.

Show comment
Hide comment
@forki

forki Feb 9, 2016

Member

I will try it out

Member

forki commented Feb 9, 2016

I will try it out

@forki

This comment has been minimized.

Show comment
Hide comment
@forki

forki Feb 9, 2016

Member

what is the correct project file ending?

Member

forki commented Feb 9, 2016

what is the correct project file ending?

@forki

This comment has been minimized.

Show comment
Hide comment
@forki

forki Feb 9, 2016

Member

Ok. let's make this a thing. paket 2.50.0 comes with experimental support for vcxproj. Please let me know how badly it breaks you.

granate

Member

forki commented Feb 9, 2016

Ok. let's make this a thing. paket 2.50.0 comes with experimental support for vcxproj. Please let me know how badly it breaks you.

granate

@konste

This comment has been minimized.

Show comment
Hide comment
@konste

konste Feb 9, 2016

Contributor

Looks encouraging... But we are brave! My colleague Tommy, who mostly cares about C++ will be looking at it shortly. Thanks for the swift response!

Contributor

konste commented Feb 9, 2016

Looks encouraging... But we are brave! My colleague Tommy, who mostly cares about C++ will be looking at it shortly. Thanks for the swift response!

@forki

This comment has been minimized.

Show comment
Hide comment
@forki

forki Feb 9, 2016

Member

yeah I added a small integration test with a "file new C++ project". It seems to reference it correctly, but I assume this is only the tip of the iceberg.

Member

forki commented Feb 9, 2016

yeah I added a small integration test with a "file new C++ project". It seems to reference it correctly, but I assume this is only the tip of the iceberg.

@tommysu

This comment has been minimized.

Show comment
Hide comment
@tommysu

tommysu Feb 9, 2016

Thanks, I plan on giving a go today. A quick question will be what do you recommend we put for the "framework" or should I just leave that out?

tommysu commented Feb 9, 2016

Thanks, I plan on giving a go today. A quick question will be what do you recommend we put for the "framework" or should I just leave that out?

@forki

This comment has been minimized.

Show comment
Hide comment
@forki

forki Feb 9, 2016

Member

in the dependencies file?

Good question. I guess start by leaving it out.

Member

forki commented Feb 9, 2016

in the dependencies file?

Good question. I guess start by leaving it out.

@forki

This comment has been minimized.

Show comment
Hide comment
@forki

forki Feb 9, 2016

Member

to clarify: I want to make this useful for C++, but since I don't use C++ myself it will likely involve some ping pong during the initial dev/testing phase.

Member

forki commented Feb 9, 2016

to clarify: I want to make this useful for C++, but since I don't use C++ myself it will likely involve some ping pong during the initial dev/testing phase.

@tommysu

This comment has been minimized.

Show comment
Hide comment
@tommysu

tommysu Feb 9, 2016

Yea, in the dependencies file. I'm going to try it empty. In nuget we would do something like this: . I'm giving 2.50 a try and will let you know soon the result.

tommysu commented Feb 9, 2016

Yea, in the dependencies file. I'm going to try it empty. In nuget we would do something like this: . I'm giving 2.50 a try and will let you know soon the result.

@forki

This comment has been minimized.

Show comment
Hide comment
@forki

forki Feb 9, 2016

Member

better remove the line completey (at least for now) we can add it back later when we know the correct framework monikers.

Member

forki commented Feb 9, 2016

better remove the line completey (at least for now) we can add it back later when we know the correct framework monikers.

@tommysu

This comment has been minimized.

Show comment
Hide comment
@tommysu

tommysu Feb 9, 2016

This was able to include the library files correctly. However, one thing that it was missing was the target files.

An example is:

 <ImportGroup Label="ExtensionTargets">
    <Import Project="..\packages\cpprestsdk.v120.winapp.msvcstl.dyn.rt-dyn.2.7.0\build\native\cpprestsdk.v120.winapp.msvcstl.dyn.rt-dyn.targets" Condition="Exists('..\packages\cpprestsdk.v120.winapp.msvcstl.dyn.rt-dyn.2.7.0\build\native\cpprestsdk.v120.winapp.msvcstl.dyn.rt-dyn.targets')" />

When following the nuget instructions for this package:

https://github.com/Microsoft/cpprestsdk/wiki/Getting-Started-Tutorial

tommysu commented Feb 9, 2016

This was able to include the library files correctly. However, one thing that it was missing was the target files.

An example is:

 <ImportGroup Label="ExtensionTargets">
    <Import Project="..\packages\cpprestsdk.v120.winapp.msvcstl.dyn.rt-dyn.2.7.0\build\native\cpprestsdk.v120.winapp.msvcstl.dyn.rt-dyn.targets" Condition="Exists('..\packages\cpprestsdk.v120.winapp.msvcstl.dyn.rt-dyn.2.7.0\build\native\cpprestsdk.v120.winapp.msvcstl.dyn.rt-dyn.targets')" />

When following the nuget instructions for this package:

https://github.com/Microsoft/cpprestsdk/wiki/Getting-Started-Tutorial

@forki

This comment has been minimized.

Show comment
Hide comment
@forki

forki Feb 9, 2016

Member

ok will look at this tommorow.

Member

forki commented Feb 9, 2016

ok will look at this tommorow.

@forki

This comment has been minimized.

Show comment
Hide comment
@forki

forki Feb 10, 2016

Member

@tommysu can you please send me the project that you get after "getting started" using Nuget? sforkmann at gmail

Member

forki commented Feb 10, 2016

@tommysu can you please send me the project that you get after "getting started" using Nuget? sforkmann at gmail

@tommysu

This comment has been minimized.

Show comment
Hide comment

tommysu commented Feb 10, 2016

Sent.

@forki

This comment has been minimized.

Show comment
Hide comment
@forki

forki Feb 10, 2016

Member

I'm pushing a new version but I'm not sure if the "when conditions" are generated properly. So I assume we need to iterate on that. But it is progress ;-)

Member

forki commented Feb 10, 2016

I'm pushing a new version but I'm not sure if the "when conditions" are generated properly. So I assume we need to iterate on that. But it is progress ;-)

@forki

This comment has been minimized.

Show comment
Hide comment
@forki

forki Feb 10, 2016

Member

Ok release failed. I broke another integration test. Good thing that we have these in place. Will look into this tomorrow.

Member

forki commented Feb 10, 2016

Ok release failed. I broke another integration test. Good thing that we have these in place. Will look into this tomorrow.

forki added a commit that referenced this issue Feb 11, 2016

forki added a commit that referenced this issue Feb 11, 2016

forki added a commit that referenced this issue Feb 11, 2016

forki added a commit that referenced this issue Feb 11, 2016

forki added a commit that referenced this issue Feb 11, 2016

@forki

This comment has been minimized.

Show comment
Hide comment
@forki

forki Feb 11, 2016

Member

Ok the version is released

Member

forki commented Feb 11, 2016

Ok the version is released

@tommysu

This comment has been minimized.

Show comment
Hide comment
@tommysu

tommysu Feb 11, 2016

It appears that the project file will get corrupted it. It generates a When condition with uneven number of ' marks. And Visual Studio will complain of An unexecpted token "=="

 <Choose>
    <When Condition="$(Platform)'=='Debug|Win32'">

tommysu commented Feb 11, 2016

It appears that the project file will get corrupted it. It generates a When condition with uneven number of ' marks. And Visual Studio will complain of An unexecpted token "=="

 <Choose>
    <When Condition="$(Platform)'=='Debug|Win32'">
@forki

This comment has been minimized.

Show comment
Hide comment
@forki

forki Feb 11, 2016

Member

ah. my copy paste bug. fixing it now.

Member

forki commented Feb 11, 2016

ah. my copy paste bug. fixing it now.

forki added a commit that referenced this issue Feb 11, 2016

@forki

This comment has been minimized.

Show comment
Hide comment
@forki

forki Feb 11, 2016

Member

fixed that

Member

forki commented Feb 11, 2016

fixed that

@tommysu

This comment has been minimized.

Show comment
Hide comment
@tommysu

tommysu Feb 11, 2016

Sorry for going back and forth. But it looks like the target file path is incorrect.

<Import Project="..\packages\cpprestsdk.v120.winapp.msvcstl.dyn.rt-dyn\build\$(__paket__cpprestsdk_v120_winapp_msvcstl_dyn_rt-dyn_targets).targets" Condition="Exists('..\packages\cpprestsdk.v120.winapp.msvcstl.dyn.rt-dyn\build\$(__paket__cpprestsdk_v120_winapp_msvcstl_dyn_rt-dyn_targets).targets')" Label="Paket" />

It should be something like \build\native$(...).targets

tommysu commented Feb 11, 2016

Sorry for going back and forth. But it looks like the target file path is incorrect.

<Import Project="..\packages\cpprestsdk.v120.winapp.msvcstl.dyn.rt-dyn\build\$(__paket__cpprestsdk_v120_winapp_msvcstl_dyn_rt-dyn_targets).targets" Condition="Exists('..\packages\cpprestsdk.v120.winapp.msvcstl.dyn.rt-dyn\build\$(__paket__cpprestsdk_v120_winapp_msvcstl_dyn_rt-dyn_targets).targets')" Label="Paket" />

It should be something like \build\native$(...).targets

@forki

This comment has been minimized.

Show comment
Hide comment
@forki

forki Feb 11, 2016

Member

Ah I see. Yes this is completely different to the other target framework
stuff.
On Feb 11, 2016 10:44 PM, "tommysu" notifications@github.com wrote:

Sorry for going back and forth. But it looks like the target file path is
incorrect.

It should be something like \build\native$(...).targets


Reply to this email directly or view it on GitHub
#1467 (comment).

Member

forki commented Feb 11, 2016

Ah I see. Yes this is completely different to the other target framework
stuff.
On Feb 11, 2016 10:44 PM, "tommysu" notifications@github.com wrote:

Sorry for going back and forth. But it looks like the target file path is
incorrect.

It should be something like \build\native$(...).targets


Reply to this email directly or view it on GitHub
#1467 (comment).

@forki

This comment has been minimized.

Show comment
Hide comment
@forki

forki Feb 13, 2016

Member

Ok another fix deployed. Please run "paket clear-cache" before you try again.

Member

forki commented Feb 13, 2016

Ok another fix deployed. Please run "paket clear-cache" before you try again.

@tommysu

This comment has been minimized.

Show comment
Hide comment
@tommysu

tommysu Feb 13, 2016

Awesome, that works! I'll let you know if I run into any more issues.

tommysu commented Feb 13, 2016

Awesome, that works! I'll let you know if I run into any more issues.

@forki

This comment has been minimized.

Show comment
Hide comment
@forki

forki Feb 13, 2016

Member

Wow. Cool.
On Feb 13, 2016 8:35 PM, "tommysu" notifications@github.com wrote:

Awesome, that works! I'll let you know if I run into any more issues.


Reply to this email directly or view it on GitHub
#1467 (comment).

Member

forki commented Feb 13, 2016

Wow. Cool.
On Feb 13, 2016 8:35 PM, "tommysu" notifications@github.com wrote:

Awesome, that works! I'll let you know if I run into any more issues.


Reply to this email directly or view it on GitHub
#1467 (comment).

@forki

This comment has been minimized.

Show comment
Hide comment
@forki

forki Feb 13, 2016

Member

Closing this one.

Please open new issues for the new issues you find.

Member

forki commented Feb 13, 2016

Closing this one.

Please open new issues for the new issues you find.

@forki forki closed this Feb 13, 2016

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment