NCBI C++ ToolKit
Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
CMsvcPrjProjectContext Class Reference

Search Toolkit Book for CMsvcPrjProjectContext

CMsvcPrjProjectContext –. More...

#include "msvc_project_context.hpp"
(Private to src/build-system/project_tree_builder.)

+ Collaboration diagram for CMsvcPrjProjectContext:

Public Member Functions

 CMsvcPrjProjectContext (const CProjItem &project)
 
string AdditionalIncludeDirectories (const SConfigInfo &cfg_info) const
 
const stringProjectName (void) const
 
const stringProjectId (void) const
 
string AdditionalLinkerOptions (const SConfigInfo &cfg_info) const
 
string AdditionalLibraryDirectories (const SConfigInfo &cfg_info) const
 
const stringProjectDir (void) const
 
CProjItem::TProjType ProjectType (void) const
 
const list< string > & SourcesDirsAbs (void) const
 
const list< string > & IncludeDirsAbs (void) const
 
const list< string > & InlineDirsAbs (void) const
 
const CMsvcCombinedProjectMakefileGetMsvcProjectMakefile (void) const
 
bool IsConfigEnabled (const SConfigInfo &config, string *unmet, string *unmet_req) const
 
const list< SCustomBuildInfo > & GetCustomBuildInfo (void) const
 
const list< stringDefines (const SConfigInfo &cfg_info) const
 
const list< CProjKey > & PreBuilds (void) const
 
EMakeFileType GetMakeType (void) const
 
const stringGetSrcRoot (void) const
 
bool IsPchEnabled (const SConfigInfo &config) const
 
string GetPchHeader (const string &project_id, const string &source_file_full_path, const string &tree_src_dir, const SConfigInfo &config) const
 
string GetConfigData (const string &section, const string &entry, const SConfigInfo &config) const
 

Static Public Member Functions

static bool IsRequiresOk (const CProjItem &prj, string *unmet)
 
static const set< string > & GetEnabledPackages (const string &config_name)
 
static const set< string > & GetDisabledPackages (const string &config_name)
 

Private Member Functions

 CMsvcPrjProjectContext (void)
 
 CMsvcPrjProjectContext (const CMsvcPrjProjectContext &)
 
CMsvcPrjProjectContextoperator= (const CMsvcPrjProjectContext &)
 
void CreateLibsList (list< string > *libs_list) const
 

Private Attributes

string m_ProjectName
 
string m_ProjectId
 
string m_AdditionalLibrarianOptions
 
string m_ProjectDir
 
CProjItem::TProjType m_ProjType
 
list< stringm_SourcesDirsAbs
 
list< stringm_IncludeDirsAbs
 
list< stringm_InlineDirsAbs
 
list< stringm_ProjectIncludeDirs
 
list< stringm_ProjectLibs
 
unique_ptr< CMsvcProjectMakefilem_MsvcProjectMakefile
 
unique_ptr< CMsvcCombinedProjectMakefilem_MsvcCombinedProjectMakefile
 
string m_SourcesBaseDir
 
list< stringm_Requires
 
list< SCustomBuildInfom_CustomBuildInfo
 
list< stringm_Defines
 
list< CProjKeym_PreBuilds
 
list< stringm_NcbiCLibs
 
EMakeFileType m_MakeType
 
string m_StaticLibRoot
 
string m_DynamicLibRoot
 
string m_SrcRoot
 
const CProjItemm_Project
 

Static Private Attributes

static map< string, set< string > > s_EnabledPackages
 
static map< string, set< string > > s_DisabledPackages
 

Detailed Description

CMsvcPrjProjectContext –.

Abstraction of MSVC project-specific context.

Project context provides project-specific information for project generation.

Definition at line 56 of file msvc_project_context.hpp.

Constructor & Destructor Documentation

◆ CMsvcPrjProjectContext() [1/3]

CMsvcPrjProjectContext::CMsvcPrjProjectContext ( const CProjItem project)

Definition at line 51 of file msvc_project_context.cpp.

References CDirEntry::AddTrailingPathSeparator(), set< Key, Compare >::begin(), CDirEntry::ConcatPath(), copy(), CreateMsvcProjectMakefileName(), CreateProjectName(), CDirEntry::CreateRelativePath(), CProjKey::eDll, CBuildType::eDll, CMsvcSite::eLib, CProjKey::eMsvc, map_checker< Container >::end(), set< Key, Compare >::end(), ePTB_ProjectNotFound, map_checker< Container >::find(), Get(), GetApp(), CProjBulderApp::GetBuildRoot(), CProjBulderApp::GetCurrentBuildTree(), CMsvcCombinedProjectMakefile::GetCustomBuildInfo(), CDirEntry::GetDir(), GetDllHost(), CMsvcCombinedProjectMakefile::GetHeadersInInclude(), CMsvcCombinedProjectMakefile::GetHeadersInSrc(), CMsvcCombinedProjectMakefile::GetInlinesInInclude(), CMsvcCombinedProjectMakefile::GetInlinesInSrc(), CMsvcSite::GetLibInfo(), GetMsvcProjectMakefile(), CMsvc7RegSettings::GetMsvcSection(), CProjBulderApp::GetProjectTreeInfo(), CProjBulderApp::GetSite(), CMsvcSite::GetThirdPartyLibsToInstall(), i, CProjKey::Id(), set< Key, Compare >::insert(), SMakeProjectT::IsConfigurableDefine(), ITERATE, SProjectTreeInfo::m_Compilers, m_CustomBuildInfo, m_Defines, CProjItem::m_Defines, m_DynamicLibRoot, CProjItem::m_ID, CProjItem::m_IncludeDirs, m_IncludeDirsAbs, CProjItem::m_Includes, m_InlineDirsAbs, CProjItem::m_Inlines, CProjItem::m_Libs3Party, SLibInfo::m_Macro, m_MakeType, CProjItem::m_MakeType, m_MsvcProjectMakefile, m_NcbiCLibs, CProjItem::m_NcbiCLibs, m_PreBuilds, m_ProjectDir, m_ProjectId, m_ProjectIncludeDirs, m_ProjectLibs, m_ProjectName, CProjectItemsTree::m_Projects, m_ProjType, CProjItem::m_ProjType, m_Requires, CProjItem::m_Requires, CProjItem::m_Sources, m_SourcesBaseDir, CProjItem::m_SourcesBaseDir, m_SourcesDirsAbs, m_SrcRoot, m_StaticLibRoot, CProjItem::m_UnconditionalDepends, CDirEntry::NormalizePath(), PTB_WARNING_EX, CDirEntry::SplitPath(), and t.

◆ CMsvcPrjProjectContext() [2/3]

CMsvcPrjProjectContext::CMsvcPrjProjectContext ( void  )
private

◆ CMsvcPrjProjectContext() [3/3]

CMsvcPrjProjectContext::CMsvcPrjProjectContext ( const CMsvcPrjProjectContext )
private

Member Function Documentation

◆ AdditionalIncludeDirectories()

string CMsvcPrjProjectContext::AdditionalIncludeDirectories ( const SConfigInfo cfg_info) const

◆ AdditionalLibraryDirectories()

string CMsvcPrjProjectContext::AdditionalLibraryDirectories ( const SConfigInfo cfg_info) const

◆ AdditionalLinkerOptions()

string CMsvcPrjProjectContext::AdditionalLinkerOptions ( const SConfigInfo cfg_info) const

◆ CreateLibsList()

void CMsvcPrjProjectContext::CreateLibsList ( list< string > *  libs_list) const
private

◆ Defines()

const list< string > CMsvcPrjProjectContext::Defines ( const SConfigInfo cfg_info) const

◆ GetConfigData()

string CMsvcPrjProjectContext::GetConfigData ( const string section,
const string entry,
const SConfigInfo config 
) const

◆ GetCustomBuildInfo()

const list<SCustomBuildInfo>& CMsvcPrjProjectContext::GetCustomBuildInfo ( void  ) const
inline

Definition at line 120 of file msvc_project_context.hpp.

References m_CustomBuildInfo.

Referenced by s_AddProjItemToDll().

◆ GetDisabledPackages()

static const set<string>& CMsvcPrjProjectContext::GetDisabledPackages ( const string config_name)
inlinestatic

◆ GetEnabledPackages()

static const set<string>& CMsvcPrjProjectContext::GetEnabledPackages ( const string config_name)
inlinestatic

◆ GetMakeType()

EMakeFileType CMsvcPrjProjectContext::GetMakeType ( void  ) const
inline

Definition at line 134 of file msvc_project_context.hpp.

References m_MakeType.

Referenced by CMsvcTools::CMsvcTools().

◆ GetMsvcProjectMakefile()

const CMsvcCombinedProjectMakefile & CMsvcPrjProjectContext::GetMsvcProjectMakefile ( void  ) const

◆ GetPchHeader()

string CMsvcPrjProjectContext::GetPchHeader ( const string project_id,
const string source_file_full_path,
const string tree_src_dir,
const SConfigInfo config 
) const

◆ GetSrcRoot()

const string& CMsvcPrjProjectContext::GetSrcRoot ( void  ) const
inline

Definition at line 147 of file msvc_project_context.hpp.

References m_SrcRoot.

◆ IncludeDirsAbs()

const list<string>& CMsvcPrjProjectContext::IncludeDirsAbs ( void  ) const
inline

◆ InlineDirsAbs()

const list<string>& CMsvcPrjProjectContext::InlineDirsAbs ( void  ) const
inline

◆ IsConfigEnabled()

bool CMsvcPrjProjectContext::IsConfigEnabled ( const SConfigInfo config,
string unmet,
string unmet_req 
) const

◆ IsPchEnabled()

bool CMsvcPrjProjectContext::IsPchEnabled ( const SConfigInfo config) const

Definition at line 737 of file msvc_project_context.cpp.

References GetConfigData(), NStr::StringToBool(), and rapidjson::value.

◆ IsRequiresOk()

bool CMsvcPrjProjectContext::IsRequiresOk ( const CProjItem prj,
string unmet 
)
static

Definition at line 603 of file msvc_project_context.cpp.

References GetApp(), ITERATE, and CProjItem::m_Requires.

Referenced by PIsExcludedByRequires::operator()().

◆ operator=()

CMsvcPrjProjectContext& CMsvcPrjProjectContext::operator= ( const CMsvcPrjProjectContext )
private

◆ PreBuilds()

const list<CProjKey>& CMsvcPrjProjectContext::PreBuilds ( void  ) const
inline

Definition at line 129 of file msvc_project_context.hpp.

References m_PreBuilds.

Referenced by CMsvcTools::CMsvcTools().

◆ ProjectDir()

const string& CMsvcPrjProjectContext::ProjectDir ( void  ) const
inline

◆ ProjectId()

const string& CMsvcPrjProjectContext::ProjectId ( void  ) const
inline

Definition at line 69 of file msvc_project_context.hpp.

References m_ProjectId.

Referenced by s_CreateCompilerTool(), s_CreateLibrarianTool(), and s_CreateLinkerTool().

◆ ProjectName()

const string& CMsvcPrjProjectContext::ProjectName ( void  ) const
inline

Definition at line 65 of file msvc_project_context.hpp.

References m_ProjectName.

◆ ProjectType()

CProjItem::TProjType CMsvcPrjProjectContext::ProjectType ( void  ) const
inline

◆ SourcesDirsAbs()

const list<string>& CMsvcPrjProjectContext::SourcesDirsAbs ( void  ) const
inline

Definition at line 95 of file msvc_project_context.hpp.

References m_SourcesDirsAbs.

Member Data Documentation

◆ m_AdditionalLibrarianOptions

string CMsvcPrjProjectContext::m_AdditionalLibrarianOptions
private

Definition at line 169 of file msvc_project_context.hpp.

◆ m_CustomBuildInfo

list<SCustomBuildInfo> CMsvcPrjProjectContext::m_CustomBuildInfo
private

Definition at line 190 of file msvc_project_context.hpp.

Referenced by CMsvcPrjProjectContext(), and GetCustomBuildInfo().

◆ m_Defines

list<string> CMsvcPrjProjectContext::m_Defines
private

Definition at line 192 of file msvc_project_context.hpp.

Referenced by CMsvcPrjProjectContext(), and Defines().

◆ m_DynamicLibRoot

string CMsvcPrjProjectContext::m_DynamicLibRoot
private

◆ m_IncludeDirsAbs

list<string> CMsvcPrjProjectContext::m_IncludeDirsAbs
private

Definition at line 176 of file msvc_project_context.hpp.

Referenced by CMsvcPrjProjectContext(), and IncludeDirsAbs().

◆ m_InlineDirsAbs

list<string> CMsvcPrjProjectContext::m_InlineDirsAbs
private

Definition at line 177 of file msvc_project_context.hpp.

Referenced by CMsvcPrjProjectContext(), and InlineDirsAbs().

◆ m_MakeType

EMakeFileType CMsvcPrjProjectContext::m_MakeType
private

Definition at line 198 of file msvc_project_context.hpp.

Referenced by CMsvcPrjProjectContext(), and GetMakeType().

◆ m_MsvcCombinedProjectMakefile

unique_ptr<CMsvcCombinedProjectMakefile> CMsvcPrjProjectContext::m_MsvcCombinedProjectMakefile
private

Definition at line 185 of file msvc_project_context.hpp.

Referenced by GetMsvcProjectMakefile().

◆ m_MsvcProjectMakefile

unique_ptr<CMsvcProjectMakefile> CMsvcPrjProjectContext::m_MsvcProjectMakefile
private

◆ m_NcbiCLibs

list<string> CMsvcPrjProjectContext::m_NcbiCLibs
private

Definition at line 196 of file msvc_project_context.hpp.

Referenced by AdditionalLinkerOptions(), and CMsvcPrjProjectContext().

◆ m_PreBuilds

list<CProjKey> CMsvcPrjProjectContext::m_PreBuilds
private

Definition at line 194 of file msvc_project_context.hpp.

Referenced by CMsvcPrjProjectContext(), and PreBuilds().

◆ m_Project

const CProjItem& CMsvcPrjProjectContext::m_Project
private

Definition at line 203 of file msvc_project_context.hpp.

Referenced by AdditionalLinkerOptions(), GetConfigData(), and GetPchHeader().

◆ m_ProjectDir

string CMsvcPrjProjectContext::m_ProjectDir
private

◆ m_ProjectId

string CMsvcPrjProjectContext::m_ProjectId
private

Definition at line 167 of file msvc_project_context.hpp.

Referenced by CMsvcPrjProjectContext(), and ProjectId().

◆ m_ProjectIncludeDirs

list<string> CMsvcPrjProjectContext::m_ProjectIncludeDirs
private

◆ m_ProjectLibs

list<string> CMsvcPrjProjectContext::m_ProjectLibs
private

◆ m_ProjectName

string CMsvcPrjProjectContext::m_ProjectName
private

Definition at line 166 of file msvc_project_context.hpp.

Referenced by CMsvcPrjProjectContext(), and ProjectName().

◆ m_ProjType

CProjItem::TProjType CMsvcPrjProjectContext::m_ProjType
private

◆ m_Requires

list<string> CMsvcPrjProjectContext::m_Requires
private

◆ m_SourcesBaseDir

string CMsvcPrjProjectContext::m_SourcesBaseDir
private

◆ m_SourcesDirsAbs

list<string> CMsvcPrjProjectContext::m_SourcesDirsAbs
private

Definition at line 175 of file msvc_project_context.hpp.

Referenced by CMsvcPrjProjectContext(), and SourcesDirsAbs().

◆ m_SrcRoot

string CMsvcPrjProjectContext::m_SrcRoot
private

◆ m_StaticLibRoot

string CMsvcPrjProjectContext::m_StaticLibRoot
private

◆ s_DisabledPackages

map< string, set< string > > CMsvcPrjProjectContext::s_DisabledPackages
staticprivate

Definition at line 206 of file msvc_project_context.hpp.

Referenced by GetDisabledPackages(), and IsConfigEnabled().

◆ s_EnabledPackages

map< string, set< string > > CMsvcPrjProjectContext::s_EnabledPackages
staticprivate

Definition at line 205 of file msvc_project_context.hpp.

Referenced by GetEnabledPackages(), and IsConfigEnabled().


The documentation for this class was generated from the following files:
Modified on Fri Sep 20 14:58:18 2024 by modify_doxy.py rev. 669887