예제 #1
0
        public CSharpWCFAppProject()
        {
            SourceRootPath = @"[project.SharpmakeCsPath]\codebase\[project.Name]";
            RootPath       = @"[project.SharpmakeCsPath]\codebase\[project.Name]";

            SourceFilesExcludeRegex.Add(@".*\.vs\.*");

            ProjectTypeGuids = CSharpProjectType.Wcf;

            Name          = "CSharpWCFApp";
            RootNamespace = "CSharpWCFApp";
            AssemblyName  = "CSharpWCFApp";

            AddTargets(
                new Target(
                    Platform.anycpu,
                    DevEnv.vs2015,
                    Optimization.Debug | Optimization.Release,
                    OutputType.Dll,
                    Blob.NoBlob,
                    BuildSystem.MSBuild,
                    DotNetFramework.v4_5
                    )
                );
        }
            protected SharpmakeBaseProject(
                bool excludeSharpmakeFiles = true,
                bool generateXmlDoc        = true
                )
            {
                AddTargets(GetDefaultTargets());

                _generateXmlDoc = generateXmlDoc;

                RootPath = Globals.AbsoluteRootPath;

                // Use the new csproj style
                ProjectSchema = CSharpProjectSchema.NetCore;

                // prevents output dir to have a framework subfolder
                CustomProperties.Add("AppendTargetFrameworkToOutputPath", "false");

                // we need to disable determinism while because we are using wildcards in assembly versions
                // error CS8357: The specified version string contains wildcards, which are not compatible with determinism
                CustomProperties.Add("Deterministic", "false");

                if (excludeSharpmakeFiles)
                {
                    SourceFilesExcludeRegex.Add(@".*\.sharpmake.cs");
                }
            }
예제 #3
0
 public ProjectImgui()
     : base(false)
 {
     Name           = "DearImgui";
     SourceRootPath = NetImguiTarget.GetPath(sDefaultPath);
     SourceFilesExcludeRegex.Add(@"backends\.*");
 }
        public HelloXCodeProject()
        {
            Name = "HelloXCode";
            SharpmakeMainFile = "HelloXCode.Main.sharpmake.cs";

            // This one is special, we have .sharpmake.cs files in the codebase
            SourceFilesExcludeRegex.Remove(@"\\codebase\\");
        }
예제 #5
0
 public SampleProject()
 {
     SourceRootPath = @"[project.RootPath]\samples\[project.Name]";
     SourceFilesExcludeRegex.Add(
         @"\\codebase\\",
         @"\\projects\\",
         @"\\reference\\"
         );
 }
 public SampleProject()
     : base(excludeSharpmakeFiles: false, generateXmlDoc: false)
 {
     SourceRootPath = @"[project.RootPath]\samples\[project.Name]";
     SourceFilesExcludeRegex.Add(
         @"\\codebase\\",
         @"\\projects\\",
         @"\\reference\\"
         );
 }
예제 #7
0
 protected SampleProject()
     : base(excludeSharpmakeFiles: false, generateXmlDoc: false)
 {
     // samples are special, all the classes are here instead of in the subfolders
     SourceRootPath = @"[project.SharpmakeCsPath]\[project.Name]";
     SourceFilesExcludeRegex.Add(
         @"\\codebase\\",
         @"\\projects\\",
         @"\\reference\\"
         );
 }
            public FunctionalTestProject()
                : base(excludeSharpmakeFiles: false, generateXmlDoc: false)
            {
                // same a samples, tests are special, the class is here instead of in the subfolder
                SourceRootPath = @"[project.SharpmakeCsPath]\[project.Name]";
                SourceFilesExcludeRegex.Add(
                    @"\\codebase\\",
                    @"\\projects\\",
                    @"\\reference\\"
                    );

                AddTargets(Common.GetDefaultTargets());
            }
예제 #9
0
    public ImGuiProject()
    {
        AddTargets(CGFTargets.GetCommonTargetsNoPreprocessToFile());

        Name       = "ImGui";
        FolderName = @"dependencies\imgui";

        SourceFilesExcludeRegex.Add(@"\\misc\\");
        SourceFilesExcludeRegex.Add(@"\\examples\\");
        SourceFilesExcludeRegex.Add(@"\\backends\\(?!.+(_win32|_dx11).(h|cpp))"); // Remove everything from \backends\ except the win32/dx11 files


        NatvisFiles.Add(@"[project.SourceRootPath]\misc\natvis\imgui.natvis");
    }
예제 #10
0
    public GTestProject()
    {
        Name           = "GTest";
        SourceRootPath = @"[project.SharpmakeCsPath]";

        SourceFilesExcludeRegex.Add(
            Regex.Escape(
                ResolveString(@"[project.SourceRootPath]\src\gtest\src")));
        SourceFilesExcludeRegex.Add(
            Regex.Escape(
                ResolveString(@"[project.SourceRootPath]\src\gmock\src")));

        SourceFiles.Add(@"[project.SourceRootPath]\src\gtest\gtest-all.cc");
        SourceFiles.Add(@"[project.SourceRootPath]\src\gmock\gmock-all.cc");
    }
        protected SampleProject()
            : base(excludeSharpmakeFiles: false, generateXmlDoc: false)
        {
            // samples are special, all the classes are here instead of in the subfolders
            SourceRootPath = @"[project.SharpmakeCsPath]\[project.Name]";
            SourceFilesExcludeRegex.Add(
                @"\\codebase\\",
                @"\\projects\\",
                @"\\reference\\"
                );

            DependenciesCopyLocal = DependenciesCopyLocalTypes.None;

            CustomProperties.Add("CopyLocalLockFileAssemblies", "false");
        }
예제 #12
0
            protected SharpmakeBaseProject(
                bool excludeSharpmakeFiles = true,
                bool generateXmlDoc        = true
                )
            {
                AddTargets(GetDefaultTargets());

                _generateXmlDoc = generateXmlDoc;

                RootPath = Globals.AbsoluteRootPath;

                if (excludeSharpmakeFiles)
                {
                    SourceFilesExcludeRegex.Add(@".*\.sharpmake.cs");
                }
            }
예제 #13
0
            public FunctionalTestProject()
                : base(excludeSharpmakeFiles: false, generateXmlDoc: false)
            {
                // same a samples, tests are special, the class is here instead of in the subfolder
                SourceRootPath = @"[project.SharpmakeCsPath]\[project.Name]";
                SourceFilesExcludeRegex.Add(
                    @"\\codebase\\",
                    @"\\projects\\",
                    @"\\reference\\"
                    );

                DependenciesCopyLocal = DependenciesCopyLocalTypes.None;

                CustomProperties.Add("CopyLocalLockFileAssemblies", "false");

                AddTargets(Common.GetDefaultTargets());
            }
예제 #14
0
    public FMTLibraryProject()
    {
        Name        = "fmt";
        ExportMacro = "FMT_EXPORT";
        ImportMacro = "FMT_SHARED";

        ProjectRoot        = @"[project.ComponentsPath]/external/[project.Name]";
        ProjectSourceRoot  = @"[project.ProjectRoot]";
        ProjectIncludeRoot = @"[project.ProjectRoot]/include";

        SourceFilesExcludeRegex.Add(@"test");
        SourceFilesExcludeRegex.Add(@"out");

        AddTargets(
            new Target(
                Platform.win64,
                DevEnv.vs2019,
                Optimization.Debug | Optimization.Release,
                OutputType.Lib
                )
            );
    }
예제 #15
0
        public DebugProject()
            : base(typeof(Target), typeof(Configuration), isInternal: true)
        {
            _projectInfo = DebugProjectGenerator.DebugProjects[GetType()];

            // set paths
            RootPath       = _projectInfo.ProjectFolder;
            SourceRootPath = RootPath;

            // add selected source files
            SourceFiles.AddRange(_projectInfo.ProjectFiles);

            // ensure that no file will be automagically added
            SourceFilesExtensions.Clear();
            ResourceFilesExtensions.Clear();
            NonEmbeddedResourceFilesExtensions.Clear();
            PRIFilesExtensions.Clear();
            ResourceFiles.Clear();
            NoneExtensions.Clear();
            VsctExtension.Clear();

            // nor removed
            SourceFilesExcludeRegex.Clear();

            Name = _projectInfo.DisplayName;

            // Use the new csproj style
            ProjectSchema = CSharpProjectSchema.NetCore;

            // prevents output dir to have a framework subfolder
            CustomProperties.Add("AppendTargetFrameworkToOutputPath", "false");

            // we need to disable determinism while because we are using wildcards in assembly versions
            // error CS8357: The specified version string contains wildcards, which are not compatible with determinism
            CustomProperties.Add("Deterministic", "false");

            AddTargets(DebugProjectGenerator.GetTargets());
        }
예제 #16
0
    public AmigoEngine()
    {
        Name = "Engine";

        RootPath       = @"[project.SharpmakeCsPath]\..\..";
        SourceRootPath = @"[project.RootPath]\Source\Engine";

        // Shader files
        SourceFilesExtensions.Add(".hlsl");
        SourceFilesExcludeRegex.Add(@".*\.generated\.h");

        AddTargets(new Target(
                       Platform.win64,
                       DevEnv.vs2017,
                       Optimization.Debug | Optimization.Release,
                       OutputType.Lib,
                       Blob.NoBlob,
                       BuildSystem.MSBuild,
                       DotNetFramework.v4_5));

        // if set to true, dependencies that the project uses will be copied to the output directory
        DependenciesCopyLocal = DependenciesCopyLocalTypes.None;
    }
예제 #17
0
        public Glfw()
        {
            // The name of the project in Visual Studio. The default is the name of
            // the class, but you usually want to override that.
            Name = "Extern.Glfw";

            // The directory that contains the source code we want to build is the
            // same as this one. This string essentially means "the directory of
            // the script you're reading right now."
            SourceRootPath = Path.Combine(Constants.ExternPath, FolderName);
            SourceFilesExcludeRegex.Add(
                @"\\tests\\",
                @"\\examples\\",
                @"\\deps\\",
                @"\\src\\wl_*",
                @"\\src\\x11_*",
                @"\\src\\glx_*",
                @"\\src\\mir_*",
                @"\\src\\linux_*",
                @"\\src\\posix_*",
                @"\\src\\cocoa_*"
                );
        }