내 목표는 내 모든 SConscript
에 의해 생성 된 모든 vcxproject에 대해 하나의 sln 파일을 갖는 것입니다. 내 SConstruct
MSVSSolution 및 MSVSProject를 사용하는 방법
프로젝트의 루트에 SLN 파일을 생성을 담당 :
vcxprojList = []
for script in getSConscript():
#SConscript imports and appends vcxproject in vcxprojList
SConscript(str(script).strip(), exports='envService vcxprojList', variant_dir=myVariantDir, duplicate=0)
Alias('msvs', env.MSVSSolution(target = 'faa_mxA' + env['MSVSSOLUTIONSUFFIX'],
projects = vcxprojList,
variant = 'Debug'))
내 SConscript 2 vcxproject를 만들고, 참조 :
prj1 = env.MSVSProject(target = env.libName() + env['MSVSPROJECTSUFFIX'],
srcs = sourcesLib,
incs = [''],
localincs = headerFiles,
resources = [''],
misc = [''],
buildtarget = lib,
variant = 'Debug',
auto_build_solution=0)
prj2 = Default(Alias('msvs',env.MSVSProject(target = 'FlatGuiSpeechController' + env['MSVSPROJECTSUFFIX'],
srcs = ['main.cpp'],
incs = [''],
localincs = [''],
resources = ['main.rc'],
misc = [''],
buildtarget = program,
variant = 'Debug',
auto_build_solution=0)))
print 'prj1 : ' + str(prj1)
print 'prj2 : ' + str(prj2)
Default(Alias('msvc', prj1))
vcxprojList.append(prj1[0])
vcxprojList.append(prj2)
나는 거의 행복
하지만, SLN을 파일이 올바르지 않으면 src 디렉토리에있는 파일을 사용할 때 variant dir의 vcxproject를 사용하려고 시도합니다.
Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libsr_sra_src_flatGui-debug.vcxproj", "build\debug\sr\sra\src\flatGui\libsr_sra_src_flatGui-debug.vcxproj", "{D4E37B2A-A33C-E0A6-3776-346AC39668E2}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "None", "None", "{6ADF97F8-3ACF-6453-D4A6-A4B1070F3754}"
EndProject
.
.
.
1 - 아직도 실제 vcxprojects가 src 디렉토리에 있고 변형 dir에 더미 vcxprojects가있는 이유는 아직도 혼란 스럽습니다. sln 파일이 잘못된 vcxproject를 사용하려고 시도합니다. 그것은 MSVSProject가 변형 된 dir과 함께 사용될 수 없기 때문입니까?
2 - 다른 문제가 있습니다. 기본 및 별칭 메커니즘은 MSVSProject에서 의도 한대로 작동하지 않습니다. MSVSProject를 'msvs'대상과 함께 실행하고 싶습니다. Default(Alias('msvc', prj1))
이 실행되지 않은 상태에서
prj1 : ['libsr_sra_src_flatGui-debug.vcxproj', 'libsr_sra_src_flatGui-debug.vcxproj.filters']
prj2 : None
scons: done reading SConscript files.
scons: Building targets ...
_GenerateV10DSP.Parse()
Adding 'FlatGuiSpeechController - Debug|Win32' to 'sr\sra\src\flatGui\FlatGuiSpeechController.vcxproj'
prj2 = Default(Alias...)
가 빈 대상을 반환 : 내 SConscript 위의 출력을 생성!
내가 뭘 잘못하고 있니?