ಮೆಸನ್ ಅಭಿವೃದ್ಧಿಯ ಪ್ರಮುಖ ಗುರಿಯು ಜೋಡಣೆ ಪ್ರಕ್ರಿಯೆಯ ಹೆಚ್ಚಿನ ವೇಗವನ್ನು ಅನುಕೂಲಕ್ಕಾಗಿ ಮತ್ತು ಬಳಕೆಯ ಸುಲಭತೆಯೊಂದಿಗೆ ಸಂಯೋಜಿಸುವುದು. ಮೇಕ್ ಯುಟಿಲಿಟಿ ಬದಲಿಗೆ, ಡೀಫಾಲ್ಟ್ ಬಿಲ್ಡ್ ಟೂಲ್ಕಿಟ್ ಅನ್ನು ಬಳಸುತ್ತದೆ
GCC, ಕ್ಲಾಂಗ್, ವಿಷುಯಲ್ ಸ್ಟುಡಿಯೋ ಮತ್ತು ಇತರ ಕಂಪೈಲರ್ಗಳನ್ನು ಬಳಸಿಕೊಂಡು Linux, macOS ಮತ್ತು Windows ನಲ್ಲಿ ಕ್ರಾಸ್-ಕಂಪೈಲಿಂಗ್ ಮತ್ತು ಬಿಲ್ಡಿಂಗ್ ಬೆಂಬಲಿತವಾಗಿದೆ. C, C++, Fortran, Java ಮತ್ತು Rust ಸೇರಿದಂತೆ ವಿವಿಧ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಗಳಲ್ಲಿ ಯೋಜನೆಗಳನ್ನು ನಿರ್ಮಿಸಲು ಸಾಧ್ಯವಿದೆ. ಹೆಚ್ಚುತ್ತಿರುವ ಬಿಲ್ಡ್ ಮೋಡ್ ಅನ್ನು ಬೆಂಬಲಿಸಲಾಗುತ್ತದೆ, ಇದರಲ್ಲಿ ಕೊನೆಯ ನಿರ್ಮಾಣದಿಂದ ಮಾಡಿದ ಬದಲಾವಣೆಗಳಿಗೆ ನೇರವಾಗಿ ಸಂಬಂಧಿಸಿದ ಘಟಕಗಳನ್ನು ಮಾತ್ರ ಮರುನಿರ್ಮಾಣ ಮಾಡಲಾಗುತ್ತದೆ. ಪುನರಾವರ್ತನೀಯ ಬಿಲ್ಡ್ಗಳನ್ನು ಉತ್ಪಾದಿಸಲು ಮೆಸಾನ್ ಅನ್ನು ಬಳಸಬಹುದು, ಇದರಲ್ಲಿ ವಿಭಿನ್ನ ಪರಿಸರದಲ್ಲಿ ಬಿಲ್ಡ್ ಅನ್ನು ಚಾಲನೆ ಮಾಡುವುದು ಸಂಪೂರ್ಣವಾಗಿ ಒಂದೇ ರೀತಿಯ ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಫೈಲ್ಗಳ ಉತ್ಪಾದನೆಗೆ ಕಾರಣವಾಗುತ್ತದೆ.
ಮುಖ್ಯ
- CMake ಬಿಲ್ಡ್ ಸ್ಕ್ರಿಪ್ಟ್ಗಳನ್ನು ಬಳಸುವ ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಯೋಜನೆಗಳ ಪಾರದರ್ಶಕ ಕಟ್ಟಡಕ್ಕೆ ಬೆಂಬಲವನ್ನು ಸೇರಿಸಲಾಗಿದೆ. ಮೆಸನ್ ಈಗ ನೇರವಾಗಿ CMake ಮಾಡ್ಯೂಲ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು ಸರಳ ಉಪಯೋಜನೆಗಳನ್ನು (ಏಕ ಗ್ರಂಥಾಲಯಗಳಂತಹವು) ನಿರ್ಮಿಸಬಹುದು, ಪ್ರಮಾಣಿತ ಉಪಯೋಜನೆಗಳಂತೆಯೇ (Camake ಉಪಯೋಜನೆಗಳನ್ನು ಉಪಯೋಜನೆಗಳ ಡೈರೆಕ್ಟರಿಯಲ್ಲಿ ಇರಿಸಬಹುದು);
- ಎಲ್ಲಾ ಬಳಸಿದ ಕಂಪೈಲರ್ಗಳಿಗೆ, ಸರಳ ಪರೀಕ್ಷಾ ಫೈಲ್ಗಳ ಜೋಡಣೆ ಮತ್ತು ಕಾರ್ಯಗತಗೊಳಿಸುವಿಕೆಯ ಮೂಲಕ ಪ್ರಾಥಮಿಕ ಪರೀಕ್ಷೆಯನ್ನು ಸೇರಿಸಲಾಗಿದೆ (ಸ್ಯಾನಿಟಿ ಚೆಕ್), ಕ್ರಾಸ್-ಕಂಪೈಲರ್ಗಳಿಗಾಗಿ ಬಳಕೆದಾರ-ನಿರ್ದಿಷ್ಟ ಧ್ವಜಗಳನ್ನು ಪರೀಕ್ಷಿಸಲು ಸೀಮಿತವಾಗಿಲ್ಲ (ಇಂದಿನಿಂದ, ಪ್ರಸ್ತುತ ಪ್ಲಾಟ್ಫಾರ್ಮ್ಗೆ ಸ್ಥಳೀಯವಾದ ಕಂಪೈಲರ್ಗಳನ್ನು ಸಹ ಪರಿಶೀಲಿಸಲಾಗುತ್ತದೆ) .
- ಆಯ್ಕೆಯ ಮೊದಲು ಪ್ಲಾಟ್ಫಾರ್ಮ್ ಪೂರ್ವಪ್ರತ್ಯಯವನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸುವ ಮೂಲಕ ಬೈಂಡಿಂಗ್ನೊಂದಿಗೆ ಅಡ್ಡ-ಸಂಕಲನದ ಸಮಯದಲ್ಲಿ ಬಳಸಲಾದ ಆಜ್ಞಾ ಸಾಲಿನ ಆಯ್ಕೆಗಳನ್ನು ವ್ಯಾಖ್ಯಾನಿಸುವ ಸಾಮರ್ಥ್ಯವನ್ನು ಸೇರಿಸಲಾಗಿದೆ. ಹಿಂದೆ, ಕಮಾಂಡ್ ಲೈನ್ ಆಯ್ಕೆಗಳು ಸ್ಥಳೀಯ ನಿರ್ಮಾಣಗಳನ್ನು ಮಾತ್ರ ಒಳಗೊಂಡಿರುತ್ತವೆ ಮತ್ತು ಅಡ್ಡ-ಸಂಕಲನಕ್ಕಾಗಿ ನಿರ್ದಿಷ್ಟಪಡಿಸಲಾಗಲಿಲ್ಲ. ನೀವು ಸ್ಥಳೀಯವಾಗಿ ನಿರ್ಮಿಸುತ್ತಿದ್ದೀರಾ ಅಥವಾ ಕ್ರಾಸ್-ಕಂಪೈಲಿಂಗ್ ಮಾಡುತ್ತಿದ್ದೀರಾ ಎಂಬುದನ್ನು ಲೆಕ್ಕಿಸದೆಯೇ ಈಗ ಕಮಾಂಡ್ ಲೈನ್ ಆಯ್ಕೆಗಳು ಅನ್ವಯಿಸುತ್ತವೆ, ಸ್ಥಳೀಯ ಮತ್ತು ಅಡ್ಡ-ಬಿಲ್ಡ್ಗಳು ಒಂದೇ ರೀತಿಯ ಫಲಿತಾಂಶಗಳನ್ನು ನೀಡುತ್ತವೆ ಎಂದು ಖಚಿತಪಡಿಸುತ್ತದೆ;
- ಬಹು ಕ್ರಾಸ್-ಫೈಲ್ಗಳನ್ನು ಪಟ್ಟಿ ಮಾಡಲು ಆಜ್ಞಾ ಸಾಲಿನಲ್ಲಿ ಒಂದಕ್ಕಿಂತ ಹೆಚ್ಚು ಬಾರಿ "--ಕ್ರಾಸ್-ಫೈಲ್" ಫ್ಲ್ಯಾಗ್ ಅನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸುವ ಸಾಮರ್ಥ್ಯವನ್ನು ಸೇರಿಸಲಾಗಿದೆ;
- ವಿಂಡೋಸ್ ಪ್ಲಾಟ್ಫಾರ್ಮ್ಗಾಗಿ (ICL.EXE ಮತ್ತು ifort) ICL ಕಂಪೈಲರ್ಗೆ (ಇಂಟೆಲ್ C/C++ ಕಂಪೈಲರ್) ಬೆಂಬಲವನ್ನು ಸೇರಿಸಲಾಗಿದೆ;
- Xtensa CPU ಗಳಿಗೆ ಆರಂಭಿಕ ಟೂಲ್ಕಿಟ್ ಬೆಂಬಲವನ್ನು ಸೇರಿಸಲಾಗಿದೆ (xt-xcc, xt-xc++, xt-nm);
- "get_variable" ವಿಧಾನವನ್ನು "ಅವಲಂಬನೆ" ವಸ್ತುವಿಗೆ ಸೇರಿಸಲಾಗಿದೆ, ಇದು ಪ್ರಸ್ತುತ ಅವಲಂಬನೆಯ ಪ್ರಕಾರವನ್ನು ಗಣನೆಗೆ ತೆಗೆದುಕೊಳ್ಳದೆಯೇ ವೇರಿಯಬಲ್ ಮೌಲ್ಯವನ್ನು ಪಡೆಯಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ (ಉದಾಹರಣೆಗೆ, dep.get_variable(pkg-config : 'var- ಹೆಸರು', cmake : 'COP_VAR_NAME));
- ಲಿಂಕರ್ಗೆ ಕರೆ ಮಾಡುವಾಗ ಬಳಸಿದ ಭಾಷೆಯನ್ನು ಸ್ಪಷ್ಟವಾಗಿ ಸೂಚಿಸಲು "link_language" ಎಂಬ ಹೊಸ ಟಾರ್ಗೆಟ್ ಅಸೆಂಬ್ಲಿ ಆಯ್ಕೆಗಳ ಆರ್ಗ್ಯುಮೆಂಟ್ ಅನ್ನು ಸೇರಿಸಲಾಗಿದೆ. ಉದಾಹರಣೆಗೆ, ಒಂದು ಮುಖ್ಯ ಫೋರ್ಟ್ರಾನ್ ಪ್ರೋಗ್ರಾಂ C/C++ ಕೋಡ್ ಅನ್ನು ಕರೆಯಬಹುದು, ಇದು ಫೋರ್ಟ್ರಾನ್ ಲಿಂಕರ್ ಅನ್ನು ಬಳಸಬೇಕಾದಾಗ C/C++ ಅನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಆಯ್ಕೆ ಮಾಡುತ್ತದೆ;
- CPPFLAGS ಪ್ರಿಪ್ರೊಸೆಸರ್ ಫ್ಲ್ಯಾಗ್ಗಳ ನಿರ್ವಹಣೆಯನ್ನು ಬದಲಾಯಿಸಲಾಗಿದೆ. ಮೆಸನ್ ಹಿಂದೆ CPPFLAGS ಮತ್ತು ಭಾಷೆ-ನಿರ್ದಿಷ್ಟ ಸಂಕಲನ ಧ್ವಜಗಳನ್ನು (CFLAGS, CXXFLAGS) ಪ್ರತ್ಯೇಕವಾಗಿ ಸಂಗ್ರಹಿಸಿದ್ದರೆ, ಅವುಗಳನ್ನು ಈಗ ಬೇರ್ಪಡಿಸಲಾಗದಂತೆ ಸಂಸ್ಕರಿಸಲಾಗುತ್ತದೆ ಮತ್ತು CPPFLAGS ನಲ್ಲಿ ಪಟ್ಟಿ ಮಾಡಲಾದ ಫ್ಲ್ಯಾಗ್ಗಳನ್ನು ಅವುಗಳನ್ನು ಬೆಂಬಲಿಸುವ ಭಾಷೆಗಳಿಗೆ ಸಂಕಲನ ಧ್ವಜಗಳ ಮತ್ತೊಂದು ಮೂಲವಾಗಿ ಬಳಸಲಾಗುತ್ತದೆ;
- ಕಸ್ಟಮ್_ಟಾರ್ಗೆಟ್ ಮತ್ತು ಕಸ್ಟಮ್_ಟಾರ್ಗೆಟ್[i] ನ ಔಟ್ಪುಟ್ ಅನ್ನು ಈಗ ಲಿಂಕ್_ವಿತ್ ಮತ್ತು ಲಿಂಕ್_ಹೋಲ್ ಕಾರ್ಯಾಚರಣೆಗಳಲ್ಲಿ ಆರ್ಗ್ಯುಮೆಂಟ್ಗಳಾಗಿ ಬಳಸಬಹುದು;
- ಜನರೇಟರ್ಗಳು ಈಗ "ಅವಲಂಬಿತ" ಆಯ್ಕೆಯನ್ನು ಬಳಸಿಕೊಂಡು ಹೆಚ್ಚುವರಿ ಅವಲಂಬನೆಗಳನ್ನು ಸೂಚಿಸುವ ಸಾಮರ್ಥ್ಯವನ್ನು ಹೊಂದಿವೆ (ಉದಾಹರಣೆಗೆ, ಜನರೇಟರ್(ಪ್ರೋಗ್ರಾಂ_ರನ್ನರ್, ಔಟ್ಪುಟ್: ['@[ಇಮೇಲ್ ರಕ್ಷಿಸಲಾಗಿದೆ]'], ಅವಲಂಬಿಸಿರುತ್ತದೆ: exe));
- ಸ್ಥಿರವಾಗಿ ಲಿಂಕ್ ಮಾಡಲಾದ ಲೈಬ್ರರಿಗಳನ್ನು ಮಾತ್ರ ಸೇರಿಸಲು ಹುಡುಕಾಟವನ್ನು ಅನುಮತಿಸಲು find_library ಗೆ ಸ್ಥಿರ ಆಯ್ಕೆಯನ್ನು ಸೇರಿಸಲಾಗಿದೆ;
- python.find_installation ಗಾಗಿ, ಪೈಥಾನ್ನ ನಿರ್ದಿಷ್ಟ ಆವೃತ್ತಿಗೆ ನೀಡಲಾದ ಪೈಥಾನ್ ಮಾಡ್ಯೂಲ್ನ ಉಪಸ್ಥಿತಿಯನ್ನು ನಿರ್ಧರಿಸುವ ಸಾಮರ್ಥ್ಯವನ್ನು ಸೇರಿಸಲಾಗಿದೆ;
- kconfig ಫೈಲ್ಗಳನ್ನು ಪಾರ್ಸಿಂಗ್ ಮಾಡಲು ಹೊಸ ಮಾಡ್ಯೂಲ್ unstable-kconfig ಅನ್ನು ಸೇರಿಸಲಾಗಿದೆ;
- "ಉಪಪ್ರಾಜೆಕ್ಟ್ಸ್ ಫೋರ್ಚ್" ಎಂಬ ಹೊಸ ಆಜ್ಞೆಯನ್ನು ಸೇರಿಸಲಾಗಿದೆ, ಇದು ಆರ್ಗ್ಯುಮೆಂಟ್ಗಳೊಂದಿಗೆ ಆಜ್ಞೆಯನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ ಮತ್ತು ಅದನ್ನು ಎಲ್ಲಾ ಉಪಪ್ರಾಜೆಕ್ಟ್ ಡೈರೆಕ್ಟರಿಗಳಲ್ಲಿ ರನ್ ಮಾಡುತ್ತದೆ;
ಮೂಲ: opennet.ru