A method for obtaining software source code that is compiled by a build system performed on a computer system comprising one or more computers, the method comprising: receiving, by a process of the build system, a request to execute code of an executable file in the process, wherein the request specifies a location of a source code file; the method characterized by loading, by the process of the build system, a process interception library as a shared library comprising library initialization code; wherein loading the process interception library causes the library initialization code, which is executed before executing a main routine of the executable file, of the process interception library to override the default create-process function with a custom create-process function and wherein the custom create-process function causes each child process of the process of the build system requested to execute code of an executable file to load the process interception library; the custom create-process function determines whether the executable file is a compiler by determining whether the executable file is included in a set of known compilers maintained by the build system or whether the executable file satisfies a pattern matching rule maintained by the build system in a set of pattern matching rules; if the executable file is determined to be a compiler, the custom create-process function calls the default create-process function to create a source code extractor process for a source code extractor; the custom create-process function passes the location of the software source code file as a parameter to the source code extractor process; the source code extractor process performs the software source code extractor process using the location of the source code file as a parameter; and the source code extractor process providing the software source code which is compiled by the build system. receiving, by a process of the build system, a request to execute code of an executable file in the process, wherein the request specifies a location of a source code file; the method characterized by loading, by the process of the build system, a process interception library as a shared library comprising library initialization code; wherein loading the process interception library causes the library initialization code, which is executed before executing a main routine of the executable file, of the process interception library to override the default create-process function with a custom create-process function and wherein the custom create-process function causes each child process of the process of the build system requested to execute code of an executable file to load the process interception library; the custom create-process function determines whether the executable file is a compiler by determining whether the executable file is included in a set of known compilers maintained by the build system or whether the executable file satisfies a pattern matching rule maintained by the build system in a set of pattern matching rules; if the executable file is determined to be a compiler, the custom create-process function calls the default create-process function to create a source code extractor process for a source code extractor; the custom create-process function passes the location of the software source code file as a parameter to the source code extractor process; the source code extractor process performs the software source code extractor process using the location of the source code file as a parameter; and the source code extractor process providing the software source code which is compiled by the build system.