有和没有提升的项目建设
project building with and without boost
我有一个项目可以使用boost库,也可以不使用。
我有一个 属性 sheet use_boost
可以添加到项目中,并且设置了提升路径和一个值为 I_AM_USING_BOOST
的 <PreprocessorDefinitions>
标签。
在代码中我有类似的东西:
#ifdef I_AM_USING_BOOST
#include <boost/any.hpp>
#else
#include <string>
#endif
namespace test
{
#ifdef I_AM_USING_BOOST
using my_defined_type = boost::any;
#else
using my_defined_type = std::string;
#endif
}
因此,如果我不想使用 boost 进行构建,我会删除 属性 sheet。
如果我想用 boost 构建,我将 属性 sheet 添加到项目中。
现在,我想构建库的两种变体:一种使用 boost,一种不使用 boost。
我可以在一个项目中使用两个不同的构建:一个有 boost,一个没有 boost,但不能手动添加或删除 属性 sheet?
我使用批处理文件中的 msbuild 进行构建。
作为我的解决方案,我添加了一个新的项目配置 (Release_no_boost),并在该配置中删除了使用 boost 库的 属性 sheet。
因此,在批处理文件中,我现在可以通过调用不同的配置 运行 msbuild 来实现这两种变体。
我现在在批处理文件中:
msbuild /t:rebuild /p:Configuration=Release D:\projects\some_test\test_1\test_1.vcxproj
msbuild /t:rebuild /p:Configuration=Release_no_boost D:\projects\some_test\test_1\test_1.vcxproj
这也可以用于具有多个项目的解决方案,但需要创建一个解决方案配置,并为正在构建的解决方案中的每个项目设置所需的项目配置。
批处理的不同之处在于,它不是项目文件,而是作为参数给出的解决方案文件:
msbuild /t:rebuild /p:Configuration=Release D:\projects\some_test\some_test.sln
msbuild /t:rebuild /p:Configuration=Release_no_boost D:\projects\some_test\some_test.sln
我有一个项目可以使用boost库,也可以不使用。
我有一个 属性 sheet use_boost
可以添加到项目中,并且设置了提升路径和一个值为 I_AM_USING_BOOST
的 <PreprocessorDefinitions>
标签。
在代码中我有类似的东西:
#ifdef I_AM_USING_BOOST
#include <boost/any.hpp>
#else
#include <string>
#endif
namespace test
{
#ifdef I_AM_USING_BOOST
using my_defined_type = boost::any;
#else
using my_defined_type = std::string;
#endif
}
因此,如果我不想使用 boost 进行构建,我会删除 属性 sheet。 如果我想用 boost 构建,我将 属性 sheet 添加到项目中。
现在,我想构建库的两种变体:一种使用 boost,一种不使用 boost。
我可以在一个项目中使用两个不同的构建:一个有 boost,一个没有 boost,但不能手动添加或删除 属性 sheet?
我使用批处理文件中的 msbuild 进行构建。
作为我的解决方案,我添加了一个新的项目配置 (Release_no_boost),并在该配置中删除了使用 boost 库的 属性 sheet。
因此,在批处理文件中,我现在可以通过调用不同的配置 运行 msbuild 来实现这两种变体。 我现在在批处理文件中:
msbuild /t:rebuild /p:Configuration=Release D:\projects\some_test\test_1\test_1.vcxproj
msbuild /t:rebuild /p:Configuration=Release_no_boost D:\projects\some_test\test_1\test_1.vcxproj
这也可以用于具有多个项目的解决方案,但需要创建一个解决方案配置,并为正在构建的解决方案中的每个项目设置所需的项目配置。
批处理的不同之处在于,它不是项目文件,而是作为参数给出的解决方案文件:
msbuild /t:rebuild /p:Configuration=Release D:\projects\some_test\some_test.sln
msbuild /t:rebuild /p:Configuration=Release_no_boost D:\projects\some_test\some_test.sln