1 /* 2 * This file is part of the Code::Blocks IDE and licensed under the GNU Lesser General Public License, version 3 3 * http://www.gnu.org/licenses/lgpl-3.0.html 4 * 5 * $Revision: 11887 $ 6 * $Id: sc_consts.cpp 11887 2019-10-26 09:12:28Z fuscated $ 7 * $HeadURL: svn://svn.code.sf.net/p/codeblocks/code/branches/release-20.xx/src/sdk/scripting/bindings/sc_consts.cpp $ 8 */ 9 10 #include <sdk_precomp.h> 11 #ifndef CB_PRECOMP 12 #include <wx/string.h> 13 #include <globals.h> 14 #include <settings.h> 15 #endif 16 17 #include <filefilters.h> 18 #include "sc_base_types.h" 19 20 // helper macros to bind constants 21 #define BIND_INT_CONSTANT(a) SqPlus::BindConstant<SQInteger>(a, #a); 22 #define BIND_INT_CONSTANT_NAMED(a,n) SqPlus::BindConstant<SQInteger>(a, n); 23 #define BIND_WXSTR_CONSTANT_NAMED(a,n) BindVariable(const_cast<wxString*>(&a), n, SqPlus::VAR_ACCESS_CONSTANT); 24 25 namespace ScriptBindings 26 { 27 wxString s_PathSep = wxFILE_SEP_PATH; 28 Register_Constants()29 void Register_Constants() 30 { 31 // platform constants 32 BIND_INT_CONSTANT_NAMED(0, "PLATFORM_MSW"); 33 BIND_INT_CONSTANT_NAMED(1, "PLATFORM_GTK"); 34 BIND_INT_CONSTANT_NAMED(2, "PLATFORM_MAC"); 35 BIND_INT_CONSTANT_NAMED(3, "PLATFORM_OS2"); 36 BIND_INT_CONSTANT_NAMED(4, "PLATFORM_X11"); 37 BIND_INT_CONSTANT_NAMED(99, "PLATFORM_UNKNOWN"); 38 39 #if defined(__WXMSW__) 40 BIND_INT_CONSTANT_NAMED(0, "PLATFORM"); 41 #elif defined(__WXGTK__) 42 BIND_INT_CONSTANT_NAMED(1, "PLATFORM"); 43 #elif defined(__WXMAC__) 44 BIND_INT_CONSTANT_NAMED(2, "PLATFORM"); 45 #elif defined(__WXOS2__) 46 BIND_INT_CONSTANT_NAMED(3, "PLATFORM"); 47 #elif defined(__WXX11__) 48 BIND_INT_CONSTANT_NAMED(4, "PLATFORM"); 49 #else 50 BIND_INT_CONSTANT_NAMED(99, "PLATFORM"); 51 #endif 52 53 BIND_INT_CONSTANT_NAMED(PLUGIN_SDK_VERSION_MAJOR, "PLUGIN_SDK_VERSION_MAJOR"); 54 BIND_INT_CONSTANT_NAMED(PLUGIN_SDK_VERSION_MINOR, "PLUGIN_SDK_VERSION_MINOR"); 55 BIND_INT_CONSTANT_NAMED(PLUGIN_SDK_VERSION_RELEASE, "PLUGIN_SDK_VERSION_RELEASE"); 56 57 // path separator for filenames 58 BIND_WXSTR_CONSTANT_NAMED(s_PathSep, "wxFILE_SEP_PATH"); 59 60 // dialog buttons 61 BIND_INT_CONSTANT(wxOK); 62 BIND_INT_CONSTANT(wxYES_NO); 63 BIND_INT_CONSTANT(wxCANCEL); 64 BIND_INT_CONSTANT(wxID_OK); 65 BIND_INT_CONSTANT(wxID_YES); 66 BIND_INT_CONSTANT(wxID_NO); 67 BIND_INT_CONSTANT(wxID_CANCEL); 68 BIND_INT_CONSTANT(wxICON_QUESTION); 69 BIND_INT_CONSTANT(wxICON_INFORMATION); 70 BIND_INT_CONSTANT(wxICON_WARNING); 71 BIND_INT_CONSTANT(wxICON_ERROR); 72 73 // wxPathFormat 74 BIND_INT_CONSTANT(wxPATH_NATIVE); 75 BIND_INT_CONSTANT(wxPATH_UNIX); 76 BIND_INT_CONSTANT(wxPATH_BEOS); 77 BIND_INT_CONSTANT(wxPATH_MAC); 78 BIND_INT_CONSTANT(wxPATH_DOS); 79 BIND_INT_CONSTANT(wxPATH_WIN); 80 BIND_INT_CONSTANT(wxPATH_OS2); 81 BIND_INT_CONSTANT(wxPATH_VMS); 82 83 // for wxFileName::GetPath() 84 BIND_INT_CONSTANT(wxPATH_GET_VOLUME); 85 BIND_INT_CONSTANT(wxPATH_GET_SEPARATOR); 86 87 // wxPathNormalize 88 BIND_INT_CONSTANT(wxPATH_NORM_ENV_VARS); 89 BIND_INT_CONSTANT(wxPATH_NORM_DOTS); 90 BIND_INT_CONSTANT(wxPATH_NORM_TILDE); 91 BIND_INT_CONSTANT(wxPATH_NORM_CASE); 92 BIND_INT_CONSTANT(wxPATH_NORM_ABSOLUTE); 93 BIND_INT_CONSTANT(wxPATH_NORM_LONG); 94 BIND_INT_CONSTANT(wxPATH_NORM_SHORTCUT); 95 BIND_INT_CONSTANT(wxPATH_NORM_ALL); 96 97 // OptionsRelationType 98 BIND_INT_CONSTANT(ortCompilerOptions); 99 BIND_INT_CONSTANT(ortLinkerOptions); 100 BIND_INT_CONSTANT(ortIncludeDirs); 101 BIND_INT_CONSTANT(ortLibDirs); 102 BIND_INT_CONSTANT(ortResDirs); 103 104 // OptionsRelation 105 BIND_INT_CONSTANT(orUseParentOptionsOnly); 106 BIND_INT_CONSTANT(orUseTargetOptionsOnly); 107 BIND_INT_CONSTANT(orPrependToParentOptions); 108 BIND_INT_CONSTANT(orAppendToParentOptions); 109 110 // TargetType 111 BIND_INT_CONSTANT(ttExecutable); 112 BIND_INT_CONSTANT(ttConsoleOnly); 113 BIND_INT_CONSTANT(ttStaticLib); 114 BIND_INT_CONSTANT(ttDynamicLib); 115 BIND_INT_CONSTANT(ttCommandsOnly); 116 BIND_INT_CONSTANT(ttNative); 117 118 // MakeCommand 119 BIND_INT_CONSTANT(mcClean); 120 BIND_INT_CONSTANT(mcDistClean); 121 BIND_INT_CONSTANT(mcBuild); 122 BIND_INT_CONSTANT(mcCompileFile); 123 BIND_INT_CONSTANT(mcAskRebuildNeeded); 124 BIND_INT_CONSTANT(mcSilentBuild); 125 126 // PCHMode 127 BIND_INT_CONSTANT(pchSourceDir); 128 BIND_INT_CONSTANT(pchObjectDir); 129 BIND_INT_CONSTANT(pchSourceFile); 130 131 // printing scope for print dialog 132 BIND_INT_CONSTANT(psSelection); 133 BIND_INT_CONSTANT(psActiveEditor); 134 BIND_INT_CONSTANT(psAllOpenEditors); 135 136 // printing colour mode 137 BIND_INT_CONSTANT(pcmBlackAndWhite); 138 BIND_INT_CONSTANT(pcmColourOnWhite); 139 BIND_INT_CONSTANT(pcmInvertColours); 140 BIND_INT_CONSTANT(pcmAsIs); 141 142 // TemplateOutputType 143 BIND_INT_CONSTANT_NAMED(totProject, "wizProject"); 144 BIND_INT_CONSTANT_NAMED(totTarget, "wizTarget"); 145 BIND_INT_CONSTANT_NAMED(totFiles, "wizFiles"); 146 BIND_INT_CONSTANT_NAMED(totCustom, "wizCustom"); 147 148 // SearchDirs 149 BIND_INT_CONSTANT(sdHome); 150 BIND_INT_CONSTANT(sdBase); 151 BIND_INT_CONSTANT(sdTemp); 152 BIND_INT_CONSTANT(sdPath); 153 BIND_INT_CONSTANT(sdConfig); 154 BIND_INT_CONSTANT(sdCurrent); 155 BIND_INT_CONSTANT(sdPluginsUser); 156 BIND_INT_CONSTANT(sdScriptsUser); 157 BIND_INT_CONSTANT(sdDataUser); 158 BIND_INT_CONSTANT(sdAllUser); 159 BIND_INT_CONSTANT(sdPluginsGlobal); 160 BIND_INT_CONSTANT(sdScriptsGlobal); 161 BIND_INT_CONSTANT(sdDataGlobal); 162 BIND_INT_CONSTANT(sdAllGlobal); 163 BIND_INT_CONSTANT(sdAllKnown); 164 165 // SupportedPlatforms 166 BIND_INT_CONSTANT(spWindows); 167 BIND_INT_CONSTANT(spUnix); 168 BIND_INT_CONSTANT(spMac); 169 BIND_INT_CONSTANT(spAll); 170 171 // TargetFilenameGenerationPolicy 172 BIND_INT_CONSTANT(tgfpPlatformDefault); 173 BIND_INT_CONSTANT(tgfpNone); 174 175 // ModuleType 176 BIND_INT_CONSTANT(mtProjectManager); 177 BIND_INT_CONSTANT(mtEditorManager); 178 BIND_INT_CONSTANT(mtLogManager); 179 BIND_INT_CONSTANT(mtOpenFilesList); 180 BIND_INT_CONSTANT(mtUnknown); 181 182 // FileTreeDataKind 183 BIND_INT_CONSTANT_NAMED(FileTreeData::ftdkUndefined, "ftdkUndefined"); 184 BIND_INT_CONSTANT_NAMED(FileTreeData::ftdkProject, "ftdkProject"); 185 BIND_INT_CONSTANT_NAMED(FileTreeData::ftdkFolder, "ftdkFolder"); 186 BIND_INT_CONSTANT_NAMED(FileTreeData::ftdkFile, "ftdkFile"); 187 BIND_INT_CONSTANT_NAMED(FileTreeData::ftdkVirtualGroup, "ftdkVirtualGroup"); 188 BIND_INT_CONSTANT_NAMED(FileTreeData::ftdkVirtualFolder, "ftdkVirtualFolder"); 189 190 // file extensions 191 BIND_WXSTR_CONSTANT_NAMED(FileFilters::WORKSPACE_EXT, "EXT_WORKSPACE"); 192 BIND_WXSTR_CONSTANT_NAMED(FileFilters::CODEBLOCKS_EXT, "EXT_CODEBLOCKS"); 193 BIND_WXSTR_CONSTANT_NAMED(FileFilters::DEVCPP_EXT, "EXT_DEVCPP"); 194 BIND_WXSTR_CONSTANT_NAMED(FileFilters::MSVC6_EXT, "EXT_MSVC6"); 195 BIND_WXSTR_CONSTANT_NAMED(FileFilters::MSVC6_WORKSPACE_EXT, "EXT_MSVC6_WORKSPACE"); 196 BIND_WXSTR_CONSTANT_NAMED(FileFilters::MSVC7_EXT, "EXT_MSVC7"); 197 BIND_WXSTR_CONSTANT_NAMED(FileFilters::MSVC7_WORKSPACE_EXT, "EXT_MSVC7_WORKSPACE"); 198 BIND_WXSTR_CONSTANT_NAMED(FileFilters::MSVC10_EXT, "EXT_MSVC10"); 199 BIND_WXSTR_CONSTANT_NAMED(FileFilters::ASM_EXT, "EXT_ASM"); 200 BIND_WXSTR_CONSTANT_NAMED(FileFilters::D_EXT, "EXT_D"); 201 BIND_WXSTR_CONSTANT_NAMED(FileFilters::F_EXT, "EXT_F"); 202 BIND_WXSTR_CONSTANT_NAMED(FileFilters::F77_EXT, "EXT_F77"); 203 BIND_WXSTR_CONSTANT_NAMED(FileFilters::F90_EXT, "EXT_F90"); 204 BIND_WXSTR_CONSTANT_NAMED(FileFilters::F95_EXT, "EXT_F95"); 205 BIND_WXSTR_CONSTANT_NAMED(FileFilters::FOR_EXT, "EXT_FOR"); 206 BIND_WXSTR_CONSTANT_NAMED(FileFilters::FPP_EXT, "EXT_FPP"); 207 BIND_WXSTR_CONSTANT_NAMED(FileFilters::F03_EXT, "EXT_F03"); 208 BIND_WXSTR_CONSTANT_NAMED(FileFilters::F08_EXT, "EXT_F08"); 209 BIND_WXSTR_CONSTANT_NAMED(FileFilters::JAVA_EXT, "EXT_JAVA"); 210 BIND_WXSTR_CONSTANT_NAMED(FileFilters::C_EXT, "EXT_C"); 211 BIND_WXSTR_CONSTANT_NAMED(FileFilters::CC_EXT, "EXT_CC"); 212 BIND_WXSTR_CONSTANT_NAMED(FileFilters::CPP_EXT, "EXT_CPP"); 213 BIND_WXSTR_CONSTANT_NAMED(FileFilters::TPP_EXT, "EXT_TPP"); 214 BIND_WXSTR_CONSTANT_NAMED(FileFilters::TCC_EXT, "EXT_TCC"); 215 BIND_WXSTR_CONSTANT_NAMED(FileFilters::CXX_EXT, "EXT_CXX"); 216 BIND_WXSTR_CONSTANT_NAMED(FileFilters::CPLPL_EXT, "EXT_CPLPL"); 217 BIND_WXSTR_CONSTANT_NAMED(FileFilters::INL_EXT, "EXT_INL"); 218 BIND_WXSTR_CONSTANT_NAMED(FileFilters::H_EXT, "EXT_H"); 219 BIND_WXSTR_CONSTANT_NAMED(FileFilters::HH_EXT, "EXT_HH"); 220 BIND_WXSTR_CONSTANT_NAMED(FileFilters::HPP_EXT, "EXT_HPP"); 221 BIND_WXSTR_CONSTANT_NAMED(FileFilters::HXX_EXT, "EXT_HXX"); 222 BIND_WXSTR_CONSTANT_NAMED(FileFilters::HPLPL_EXT, "EXT_HPLPL"); 223 BIND_WXSTR_CONSTANT_NAMED(FileFilters::S_EXT, "EXT_S"); 224 BIND_WXSTR_CONSTANT_NAMED(FileFilters::SS_EXT, "EXT_SS"); 225 BIND_WXSTR_CONSTANT_NAMED(FileFilters::S62_EXT, "EXT_S62"); 226 BIND_WXSTR_CONSTANT_NAMED(FileFilters::OBJECT_EXT, "EXT_OBJECT"); 227 BIND_WXSTR_CONSTANT_NAMED(FileFilters::XRCRESOURCE_EXT, "EXT_XRCRESOURCE"); 228 BIND_WXSTR_CONSTANT_NAMED(FileFilters::STATICLIB_EXT, "EXT_STATICLIB"); 229 BIND_WXSTR_CONSTANT_NAMED(FileFilters::DYNAMICLIB_EXT, "EXT_DYNAMICLIB"); 230 BIND_WXSTR_CONSTANT_NAMED(FileFilters::EXECUTABLE_EXT, "EXT_EXECUTABLE"); 231 BIND_WXSTR_CONSTANT_NAMED(FileFilters::EXECUTABLE_EXT, "EXT_NATIVE"); 232 BIND_WXSTR_CONSTANT_NAMED(FileFilters::RESOURCE_EXT, "EXT_RESOURCE"); 233 BIND_WXSTR_CONSTANT_NAMED(FileFilters::RESOURCEBIN_EXT, "EXT_RESOURCEBIN"); 234 BIND_WXSTR_CONSTANT_NAMED(FileFilters::XML_EXT, "EXT_XML"); 235 BIND_WXSTR_CONSTANT_NAMED(FileFilters::SCRIPT_EXT, "EXT_SCRIPT"); 236 BIND_WXSTR_CONSTANT_NAMED(FileFilters::WORKSPACE_DOT_EXT, "DOT_EXT_WORKSPACE"); 237 BIND_WXSTR_CONSTANT_NAMED(FileFilters::CODEBLOCKS_DOT_EXT, "DOT_EXT_CODEBLOCKS"); 238 BIND_WXSTR_CONSTANT_NAMED(FileFilters::DEVCPP_DOT_EXT, "DOT_EXT_DEVCPP"); 239 BIND_WXSTR_CONSTANT_NAMED(FileFilters::MSVC6_DOT_EXT, "DOT_EXT_MSVC6"); 240 BIND_WXSTR_CONSTANT_NAMED(FileFilters::MSVC6_WORKSPACE_DOT_EXT, "DOT_EXT_MSVC6_WORKSPACE"); 241 BIND_WXSTR_CONSTANT_NAMED(FileFilters::MSVC7_DOT_EXT, "DOT_EXT_MSVC7"); 242 BIND_WXSTR_CONSTANT_NAMED(FileFilters::MSVC7_WORKSPACE_DOT_EXT, "DOT_EXT_MSVC7_WORKSPACE"); 243 BIND_WXSTR_CONSTANT_NAMED(FileFilters::MSVC10_DOT_EXT, "DOT_EXT_MSVC10"); 244 BIND_WXSTR_CONSTANT_NAMED(FileFilters::ASM_DOT_EXT, "DOT_EXT_ASM"); 245 BIND_WXSTR_CONSTANT_NAMED(FileFilters::D_DOT_EXT, "DOT_EXT_D"); 246 BIND_WXSTR_CONSTANT_NAMED(FileFilters::F_DOT_EXT, "DOT_EXT_F"); 247 BIND_WXSTR_CONSTANT_NAMED(FileFilters::F77_DOT_EXT, "DOT_EXT_F77"); 248 BIND_WXSTR_CONSTANT_NAMED(FileFilters::F90_DOT_EXT, "DOT_EXT_F90"); 249 BIND_WXSTR_CONSTANT_NAMED(FileFilters::F95_DOT_EXT, "DOT_EXT_F95"); 250 BIND_WXSTR_CONSTANT_NAMED(FileFilters::FOR_DOT_EXT, "DOT_EXT_FOR"); 251 BIND_WXSTR_CONSTANT_NAMED(FileFilters::FPP_DOT_EXT, "DOT_EXT_FPP"); 252 BIND_WXSTR_CONSTANT_NAMED(FileFilters::F03_DOT_EXT, "DOT_EXT_F03"); 253 BIND_WXSTR_CONSTANT_NAMED(FileFilters::F08_DOT_EXT, "DOT_EXT_F08"); 254 BIND_WXSTR_CONSTANT_NAMED(FileFilters::JAVA_DOT_EXT, "DOT_EXT_JAVA"); 255 BIND_WXSTR_CONSTANT_NAMED(FileFilters::C_DOT_EXT, "DOT_EXT_C"); 256 BIND_WXSTR_CONSTANT_NAMED(FileFilters::CC_DOT_EXT, "DOT_EXT_CC"); 257 BIND_WXSTR_CONSTANT_NAMED(FileFilters::CPP_DOT_EXT, "DOT_EXT_CPP"); 258 BIND_WXSTR_CONSTANT_NAMED(FileFilters::TPP_DOT_EXT, "DOT_EXT_TPP"); 259 BIND_WXSTR_CONSTANT_NAMED(FileFilters::TCC_DOT_EXT, "DOT_EXT_TCC"); 260 BIND_WXSTR_CONSTANT_NAMED(FileFilters::CXX_DOT_EXT, "DOT_EXT_CXX"); 261 BIND_WXSTR_CONSTANT_NAMED(FileFilters::CPLPL_DOT_EXT, "DOT_EXT_CPLPL"); 262 BIND_WXSTR_CONSTANT_NAMED(FileFilters::H_DOT_EXT, "DOT_EXT_H"); 263 BIND_WXSTR_CONSTANT_NAMED(FileFilters::HH_DOT_EXT, "DOT_EXT_HH"); 264 BIND_WXSTR_CONSTANT_NAMED(FileFilters::HPP_DOT_EXT, "DOT_EXT_HPP"); 265 BIND_WXSTR_CONSTANT_NAMED(FileFilters::HXX_DOT_EXT, "DOT_EXT_HXX"); 266 BIND_WXSTR_CONSTANT_NAMED(FileFilters::HPLPL_DOT_EXT, "DOT_EXT_HPLPL"); 267 BIND_WXSTR_CONSTANT_NAMED(FileFilters::S_DOT_EXT, "DOT_EXT_S"); 268 BIND_WXSTR_CONSTANT_NAMED(FileFilters::SS_DOT_EXT, "DOT_EXT_SS"); 269 BIND_WXSTR_CONSTANT_NAMED(FileFilters::S62_DOT_EXT, "DOT_EXT_S62"); 270 BIND_WXSTR_CONSTANT_NAMED(FileFilters::OBJECT_DOT_EXT, "DOT_EXT_OBJECT"); 271 BIND_WXSTR_CONSTANT_NAMED(FileFilters::XRCRESOURCE_DOT_EXT, "DOT_EXT_XRCRESOURCE"); 272 BIND_WXSTR_CONSTANT_NAMED(FileFilters::STATICLIB_DOT_EXT, "DOT_EXT_STATICLIB"); 273 BIND_WXSTR_CONSTANT_NAMED(FileFilters::DYNAMICLIB_DOT_EXT, "DOT_EXT_DYNAMICLIB"); 274 BIND_WXSTR_CONSTANT_NAMED(FileFilters::EXECUTABLE_DOT_EXT, "DOT_EXT_EXECUTABLE"); 275 BIND_WXSTR_CONSTANT_NAMED(FileFilters::NATIVE_DOT_EXT, "DOT_EXT_NATIVE"); 276 BIND_WXSTR_CONSTANT_NAMED(FileFilters::RESOURCE_DOT_EXT, "DOT_EXT_RESOURCE"); 277 BIND_WXSTR_CONSTANT_NAMED(FileFilters::RESOURCEBIN_DOT_EXT, "DOT_EXT_RESOURCEBIN"); 278 BIND_WXSTR_CONSTANT_NAMED(FileFilters::XML_DOT_EXT, "DOT_EXT_XML"); 279 BIND_WXSTR_CONSTANT_NAMED(FileFilters::SCRIPT_DOT_EXT, "DOT_EXT_SCRIPT"); 280 281 // LinkerExecutableOption 282 BIND_INT_CONSTANT_NAMED(int32_t(LinkerExecutableOption::AutoDetect), "leoAutoDetect"); 283 BIND_INT_CONSTANT_NAMED(int32_t(LinkerExecutableOption::CCompiler), "leoCCompiler"); 284 BIND_INT_CONSTANT_NAMED(int32_t(LinkerExecutableOption::CppCompiler), "leoCppCompiler"); 285 BIND_INT_CONSTANT_NAMED(int32_t(LinkerExecutableOption::Linker), "leoLinker"); 286 } 287 }; 288