From d72ff7334270de91242240d45263783e72546a1e Mon Sep 17 00:00:00 2001 From: crupest Date: Thu, 28 Mar 2019 18:37:02 +0800 Subject: ... --- CMakeSettings.json | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 CMakeSettings.json (limited to 'CMakeSettings.json') diff --git a/CMakeSettings.json b/CMakeSettings.json new file mode 100644 index 00000000..1d244620 --- /dev/null +++ b/CMakeSettings.json @@ -0,0 +1,17 @@ +{ + "configurations": [ + { + "name": "x64-Debug", + "generator": "Ninja", + "configurationType": "Debug", + "inheritEnvironments": [ + "msvc_x64_x64" + ], + "buildRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\build\\${name}", + "installRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\install\\${name}", + "cmakeCommandArgs": "", + "buildCommandArgs": "-v", + "ctestCommandArgs": "" + } + ] +} \ No newline at end of file -- cgit v1.2.3 From fd207a4499a29e3085fb9b73db4a228cde110d60 Mon Sep 17 00:00:00 2001 From: crupest Date: Thu, 28 Mar 2019 19:19:18 +0800 Subject: ... --- CMakeSettings.json | 17 ----------------- azure-pipelines.yml | 2 +- tools/build.py | 26 +++++++++++++++++++------- 3 files changed, 20 insertions(+), 25 deletions(-) delete mode 100644 CMakeSettings.json (limited to 'CMakeSettings.json') diff --git a/CMakeSettings.json b/CMakeSettings.json deleted file mode 100644 index 1d244620..00000000 --- a/CMakeSettings.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "configurations": [ - { - "name": "x64-Debug", - "generator": "Ninja", - "configurationType": "Debug", - "inheritEnvironments": [ - "msvc_x64_x64" - ], - "buildRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\build\\${name}", - "installRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\install\\${name}", - "cmakeCommandArgs": "", - "buildCommandArgs": "-v", - "ctestCommandArgs": "" - } - ] -} \ No newline at end of file diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 6f3b8473..709bd25a 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -21,7 +21,7 @@ jobs: buildConfiguration: 'Release' steps: - - script: python tools\build.py -a $(buildPlatform) -c $(buildConfiguration) + - script: python tools\build.py -a $(buildPlatform) -c $(buildConfiguration) -e Enterprise - task: CopyFiles@2 inputs: diff --git a/tools/build.py b/tools/build.py index ab7c1205..329e14e7 100644 --- a/tools/build.py +++ b/tools/build.py @@ -9,19 +9,31 @@ parser.add_argument('-a', '--arch', choices=['x86', 'x64'], required=True, help='specify target cpu architecture') parser.add_argument('-c', '--config', choices=['Debug', 'Release'], required=True, help='specify build configuration') +parser.add_argument('-e', '--vs-edition', choices=['Community', 'Enterprise'], + default='Community', help='specify visual studio edition') args = parser.parse_args() project_root = os.path.abspath(os.path.join(os.path.dirname(__file__), '..')) -os.chdir(project_root) -generater_vs_arch_map = { - 'x86': 'Win32', - 'x64': 'x64' -} +vs_path = 'C:/Program Files (x86)/Microsoft Visual Studio/2017/{edition}'.format( + edition=args.vs_edition) + +def setup_vs_env(): + old_dir = os.getcwd() + os.chdir(os.path.join(vs_path, 'VC/Auxiliary/Build')) + output = subprocess.check_output('vcvarsall.bat {arch} & set'.format(arch=args.arch), text=True) + for line in output.splitlines(): + e = line.find('=') + os.environ[line[:e]] = line[e+1:] + os.chdir(old_dir) + +setup_vs_env() + +os.chdir(project_root) -subprocess.run('cmake -S . -B build -G "Visual Studio 15 2017" -A {arch}'.format(arch=generater_vs_arch_map[args.arch]), +subprocess.run('cmake -S . -B build -G "Ninja" -DCMAKE_BUILD_TYPE="{config}"'.format(config=args.config), stdout=sys.stdout, stderr=sys.stderr) -subprocess.run('cmake --build build --target ALL_BUILD --config {config}'.format(config=args.config), +subprocess.run('cmake --build build --target all', stdout=sys.stdout, stderr=sys.stderr) -- cgit v1.2.3 From b8f7324a5a17d0da1da376ecb797d2fe3ed2027a Mon Sep 17 00:00:00 2001 From: crupest Date: Thu, 28 Mar 2019 19:22:25 +0800 Subject: ... --- CMakeSettings.json | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 CMakeSettings.json (limited to 'CMakeSettings.json') diff --git a/CMakeSettings.json b/CMakeSettings.json new file mode 100644 index 00000000..81078ff7 --- /dev/null +++ b/CMakeSettings.json @@ -0,0 +1,56 @@ +{ + "configurations": [ + { + "name": "x86-Debug", + "generator": "Ninja", + "configurationType": "Debug", + "inheritEnvironments": [ + "msvc_x86" + ], + "buildRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\build\\${name}", + "installRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\install\\${name}", + "cmakeCommandArgs": "", + "buildCommandArgs": "-v", + "ctestCommandArgs": "" + }, + { + "name": "x86-Realse", + "generator": "Ninja", + "configurationType": "Release", + "inheritEnvironments": [ + "msvc_x86" + ], + "buildRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\build\\${name}", + "installRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\install\\${name}", + "cmakeCommandArgs": "", + "buildCommandArgs": "-v", + "ctestCommandArgs": "" + }, + { + "name": "x64-Debug", + "generator": "Ninja", + "configurationType": "Debug", + "inheritEnvironments": [ + "msvc_x64_x64" + ], + "buildRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\build\\${name}", + "installRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\install\\${name}", + "cmakeCommandArgs": "", + "buildCommandArgs": "-v", + "ctestCommandArgs": "" + }, + { + "name": "x64-Release", + "generator": "Ninja", + "configurationType": "Release", + "inheritEnvironments": [ + "msvc_x64_x64" + ], + "buildRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\build\\${name}", + "installRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\install\\${name}", + "cmakeCommandArgs": "", + "buildCommandArgs": "-v", + "ctestCommandArgs": "" + } + ] +} \ No newline at end of file -- cgit v1.2.3 From 32314dd3d9aa01f929ee6d158d6f6ac2e0e22ed5 Mon Sep 17 00:00:00 2001 From: crupest Date: Thu, 28 Mar 2019 20:17:03 +0800 Subject: ... --- CMakeSettings.json | 40 ++++++++-------------------------------- azure-pipelines.yml | 2 +- src/CMakeLists.txt | 2 +- src/main.cpp | 5 +++-- tools/build.py | 26 +++++++------------------- 5 files changed, 20 insertions(+), 55 deletions(-) (limited to 'CMakeSettings.json') diff --git a/CMakeSettings.json b/CMakeSettings.json index 81078ff7..ce7531e0 100644 --- a/CMakeSettings.json +++ b/CMakeSettings.json @@ -2,55 +2,31 @@ "configurations": [ { "name": "x86-Debug", - "generator": "Ninja", + "generator": "Visual Studio 15 2017", "configurationType": "Debug", - "inheritEnvironments": [ - "msvc_x86" - ], "buildRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\build\\${name}", - "installRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\install\\${name}", - "cmakeCommandArgs": "", - "buildCommandArgs": "-v", - "ctestCommandArgs": "" + "installRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\install\\${name}" }, { "name": "x86-Realse", - "generator": "Ninja", + "generator": "Visual Studio 15 2017", "configurationType": "Release", - "inheritEnvironments": [ - "msvc_x86" - ], "buildRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\build\\${name}", - "installRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\install\\${name}", - "cmakeCommandArgs": "", - "buildCommandArgs": "-v", - "ctestCommandArgs": "" + "installRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\install\\${name}" }, { "name": "x64-Debug", - "generator": "Ninja", + "generator": "Visual Studio 15 2017 Win64", "configurationType": "Debug", - "inheritEnvironments": [ - "msvc_x64_x64" - ], "buildRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\build\\${name}", - "installRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\install\\${name}", - "cmakeCommandArgs": "", - "buildCommandArgs": "-v", - "ctestCommandArgs": "" + "installRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\install\\${name}" }, { "name": "x64-Release", - "generator": "Ninja", + "generator": "Visual Studio 15 2017 Win64", "configurationType": "Release", - "inheritEnvironments": [ - "msvc_x64_x64" - ], "buildRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\build\\${name}", - "installRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\install\\${name}", - "cmakeCommandArgs": "", - "buildCommandArgs": "-v", - "ctestCommandArgs": "" + "installRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\install\\${name}" } ] } \ No newline at end of file diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 21ae7aaa..a9338a78 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -21,7 +21,7 @@ jobs: buildConfiguration: 'Release' steps: - - script: py -3 tools\build.py -a $(buildPlatform) -c $(buildConfiguration) -e Enterprise + - script: py -3 tools\build.py -a $(buildPlatform) -c $(buildConfiguration) - task: CopyFiles@2 inputs: diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index da488e08..b4097d63 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -32,6 +32,6 @@ target_link_libraries(cru_ui PRIVATE D3D11 D2d1 DWrite) target_compile_definitions(cru_ui PUBLIC UNICODE _UNICODE) # use unicode endif() -add_executable(demo main.cpp) +add_executable(demo WIN32 main.cpp) target_link_libraries(demo PRIVATE cru_ui) diff --git a/src/main.cpp b/src/main.cpp index a787fbca..c35213f7 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -16,12 +16,13 @@ using cru::ui::controls::Button; using cru::ui::controls::FlexLayout; using cru::ui::controls::TextBlock; -int main() { +int APIENTRY wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, + LPWSTR lpCmdLine, int nCmdShow) { #ifdef CRU_DEBUG _CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF); #endif - Application application(::GetModuleHandleW(nullptr)); + Application application(hInstance); const auto window = Window::CreateOverlapped(); diff --git a/tools/build.py b/tools/build.py index dac1f957..ab7c1205 100644 --- a/tools/build.py +++ b/tools/build.py @@ -9,31 +9,19 @@ parser.add_argument('-a', '--arch', choices=['x86', 'x64'], required=True, help='specify target cpu architecture') parser.add_argument('-c', '--config', choices=['Debug', 'Release'], required=True, help='specify build configuration') -parser.add_argument('-e', '--vs-edition', choices=['Community', 'Enterprise'], - default='Community', help='specify visual studio edition') args = parser.parse_args() project_root = os.path.abspath(os.path.join(os.path.dirname(__file__), '..')) - -vs_path = 'C:/Program Files (x86)/Microsoft Visual Studio/2017/{edition}'.format( - edition=args.vs_edition) - -def setup_vs_env(): - old_dir = os.getcwd() - os.chdir(os.path.join(vs_path, 'VC/Auxiliary/Build')) - output = subprocess.check_output('vcvarsall.bat {arch} & set'.format(arch=args.arch), encoding='utf-8') - for line in output.splitlines(): - e = line.find('=') - os.environ[line[:e]] = line[e+1:] - os.chdir(old_dir) - -setup_vs_env() - os.chdir(project_root) -subprocess.run('cmake -S . -B build -G "Ninja" -DCMAKE_BUILD_TYPE="{config}"'.format(config=args.config), +generater_vs_arch_map = { + 'x86': 'Win32', + 'x64': 'x64' +} + +subprocess.run('cmake -S . -B build -G "Visual Studio 15 2017" -A {arch}'.format(arch=generater_vs_arch_map[args.arch]), stdout=sys.stdout, stderr=sys.stderr) -subprocess.run('cmake --build build --target all', +subprocess.run('cmake --build build --target ALL_BUILD --config {config}'.format(config=args.config), stdout=sys.stdout, stderr=sys.stderr) -- cgit v1.2.3