[Scons-users] Problem with multiple-variant MSVS project
Vegard Lillevoll
lilveg at gmail.com
Wed Apr 7 02:29:47 EDT 2021
Hi,
That causes the error to disappear, but only the first variant (debug) is
in the project file. Here's the output:
scons: Reading SConscript files ...
scons: warning: Two different environments were specified for target
hello.vcxproj,
but they appear to have the same action: GenerateProject(target,
source, env)
File "SConstruct", line 9, in <module>
scons: warning: Two different environments were specified for target
hello.sln,
but they appear to have the same action: GenerateProject(target,
source, env)
File "SConstruct", line 9, in <module>
scons: warning: Two different environments were specified for target
hello.vcxproj.filters,
but they appear to have the same action: GenerateProject(target,
source, env)
File "\SConstruct", line 9, in <module>
scons: done reading SConscript files.
scons: Building targets ...
Adding 'hello - debug|Win32' to 'hello.vcxproj'
scons: done building targets.
ons. 7. apr. 2021 kl. 00:54 skrev Bill Deegan <bill at baddogconsulting.com>:
> Hmm. That might be a bug.
>
> Try the following:
>
> In your install find SCons/Tool/msvs.py
> around line 2038 you should find:
>
> projectBuilder = SCons.Builder.Builder(action = '$MSVSPROJECTCOM',
> suffix = '$MSVSPROJECTSUFFIX',
> emitter = projectEmitter)
>
>
> Add to that Builder() call multi=True
>
> Let us know if that works.
>
> Thanks,
> Bill
>
> On Tue, Apr 6, 2021 at 12:46 AM Vegard Lillevoll <lilveg at gmail.com> wrote:
>
>> Hi!
>>
>> I am trying to set up visual studio projects with debug and release
>> builds in a large SCons project. The manual proclaims:
>>
>> > Multiple calls to MSVSProject with different variants are allowed; all
>> variants will be added to the project file with their appropriate build
>> targets and sources.
>>
>> However, when I try to do this, I get the error that "Multiple ways to
>> build the same target were specified".
>>
>> Minimal example (SConstruct file)
>>
>> import os
>> from SCons.Script import *
>>
>> env = Environment()
>>
>> for variant in ['debug', 'release']:
>> env.MSVSProject(
>> target = 'hello' + env['MSVSPROJECTSUFFIX'],
>> srcs = 'hello.cpp',
>> buildtarget = os.path.join(variant, 'hello.exe'),
>> variant = variant)
>>
>> This gives the following output:
>>
>> scons: Reading SConscript files ...
>>
>> scons: warning: Two different environments were specified for target
>> hello.vcxproj,
>> but they appear to have the same action:
>> GenerateProject(target, source, env)
>> File "SConstruct", line 7, in <module>
>>
>> scons: *** Multiple ways to build the same target were specified for:
>> hello.vcxproj (from ['prj_inputs:"python.exe" -c "from os.path import
>> join; import sys; sys.path = [ join(sys.prefix, \'Lib\', \'site-packages\',
>> \'scons-4.1.0\'), join(sys.prefix, \'scons-4.1.0\'), join(sys.prefix,
>> \'Lib\', \'site-packages\', \'scons\'), join(sys.prefix, \'scons\') ] +
>> sys.path; import SCons.Script; SCons.Script.main()" -C "." -f
>> SConstructutf-8; ppdefs: incpath: "debug\\hello.exe" "debug" "hello.cpp
>> "hello.vcxproj"'] and from ['prj_inputs:"python.exe" -c "from os.path
>> import join; import sys; sys.path = [ join(sys.prefix, \'Lib\',
>> \'site-packages\', \'scons-4.1.0\'), join(sys.prefix, \'scons-4.1.0\'),
>> join(sys.prefix, \'Lib\', \'site-packages\', \'scons\'), join(sys.prefix,
>> \'scons\') ] + sys.path; import SCons.Script; SCons.Script.main()" -C "."
>> -f SConstructutf-8; ppdefs: incpath: "release\\hello.exe" "release"
>> "hello.cpp "hello.vcxproj"'])
>> File "SConstruct", line 7, in <module>
>>
>> Is this a bug in SCons, or am I not understanding how this is supposed to
>> work? I have tried both versions 3.1.2 and 4.1.0.
>>
>> I realize that the variants can be passed in a list as a single call, but
>> maintaining separate lists of sources and targets for different build types
>> would not be possible without a major rewrite of the existing build
>> infrastructure. I was hoping to use one environment per build type, and the
>> quote from the manual makes it seem like SCons should be able to combine
>> them into one MSVS project.
>>
>> Any help would be greatly appreciated!
>> _______________________________________________
>> Scons-users mailing list
>> Scons-users at scons.org
>> https://pairlist4.pair.net/mailman/listinfo/scons-users
>>
> _______________________________________________
> Scons-users mailing list
> Scons-users at scons.org
> https://pairlist4.pair.net/mailman/listinfo/scons-users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://pairlist4.pair.net/pipermail/scons-users/attachments/20210407/e3febe45/attachment.htm>
More information about the Scons-users
mailing list