Я определил две библиотеки - одну статическую, одну общую - для создания в подкаталоге «библиотеки» с файлом SConscript
.Этот SConscript
затем вызывается из SConstruct
в родительском каталоге, который старательно собирает обе библиотеки.
D: \ tony \ library \ SConscript:
# Define environmental/project constants
CPPPATH = ['../headers']
SOURCES = ['greeter.cxx']
# Inherit the parent environment and update values if necessary.
Import('env')
# Build targets using defined environment variables.
print "Building libraries"
env.StaticLibrary(target = 'lib_greeter.a', source = SOURCES, CPPPATH = CPPPATH)
env.SharedLibrary(target = 'greeter.dll', source = SOURCES, CPPPATH = CPPPATH)
D: \ tony \ SConstruct:
# Define environmental/project constants
TOOLS = ['gcc', 'g++', 'gnulink', 'ar']
PATH = ['C:/cygwin/bin']
CYGWIN = ['nodosfilewarning']
DECIDER = 'MD5-timestamp' # Use a combination of timestamps and checksums to decide if dependencies have changed.
# Initialize the Default Environment and update values.
env = DefaultEnvironment(tools=TOOLS)
env['ENV']['PATH'] = PATH
env['ENV']['CYGWIN'] = CYGWIN
env.Decider(DECIDER)
# Call subsidiary SConscript files with defined environment variables.
SConscript('libraries/SConscript', exports = 'env', duplicate = 0) # do not copy src files to build directory.
Но как я могу указать, что я хочу создать только одну из библиотек (например, greeter.dll
) при вызове scons
в строке cmd?
Ранее я определил некоторые пользовательские параметры командной строки, используя AddOption
для введения некоторого управления потоком, но почему-то это не совсем правильно.