CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。只是 CMake 的组态档取名为 CMakeLists.txt。Cmake 并不直接建构出最终的软件,而是产生标准的建构档(如 Unix 的 Makefile 或 Windows Visual C++ 的 projects/workspaces),然后再依一般的建构方式使用。这使得熟悉某个集成开发环境(IDE)的开发者可以用标准的方式建构他的软件,这种可以使用各平台的原生建构系统的能力是 CMake 和 SCons 等其他类似系统的区别之处。
下载安装CMAKE
自行百度(((
安装完成后输入cmake
C:\Users\gloom>cmake
Usage
  cmake [options] <path-to-source>
  cmake [options] <path-to-existing-build>
  cmake [options] -S <path-to-source> -B <path-to-build>
Specify a source directory to (re-)generate a build system for it in the
current working directory.  Specify an existing build directory to
re-generate its build system.
Run 'cmake --help' for more information.
输出这些即为正确
使用Python3脚本进行构建
写一个普通的CMakeLists.txt,这里不多说了。
下载下面的脚本,并按要求修改
# Work With Python3
import os
import stat
from shutil import rmtree
from subprocess import check_call
def resolve_path(rel_path):
    return os.path.abspath(os.path.join(os.path.dirname(__file__), rel_path))
def rmtree_silent(root):
    def remove_readonly_handler(fn, root, excinfo):
        if fn is os.rmdir:
            if os.path.isdir(root):            # if exists
                os.chmod(root, stat.S_IWRITE)  # make writable
                os.rmdir(root)
        elif fn is os.remove:
            if os.path.isfile(root):           # if exists
                os.chmod(root, stat.S_IWRITE)  # make writable
                os.remove(root)
    rmtree(root, onerror=remove_readonly_handler)
def makedirs_silent(root):
    try:
        os.makedirs(root)
    except OSError:                            # mute if exists
        pass
if __name__ == "__main__":
    build_dir = resolve_path("build")
    rmtree_silent(build_dir)
    makedirs_silent(build_dir)
    os.chdir(build_dir)
    check_call([
        "cmake",
        os.path.expandvars(
            "-DCMAKE_TOOLCHAIN_FILE=到Emscripten.cmake的路径,例如[D:\\Emscripten\\emscripten\\1.35.0\\cmake\\Modules\\Platform\\Emscripten.cmake]"),
        "-DCMAKE_BUILD_TYPE=编译方式:Debug或者Release",
        "-DCMAKE_MAKE_PROGRAM=编译的方法,例如mingw32-make",
        "-G",
        "Unix Makefiles",
        ".."
    ])
    check_call(["make"])
运行即可完成编译,输出内容如下
-- Configuring done
-- Generating done
Scanning dependencies of target Test
[ 94%] Building CXX object CMakeFiles/Test.dir/src/Test.cpp.o
[100%] Linking CXX executable Test.js
[100%] Built target Test
到build文件夹下,运行
node Test.js
输出Hello World就完成了

 