Provides the add_module_library CMake function that is a wrapper around add_library with additional module-specific rules.
This module currently supports:
This module can also fallback to a non-modular library for compatibility.
Projects using add_module_library:
hello.cc:
module;
#include <cstdio>
export module hello;
export void hello() { std::printf("Hello, modules!\n"); }
main.cc:
import hello;
int main() { hello(); }
CMakeLists.txt:
cmake_minimum_required(VERSION 3.11)
project(HELLO CXX)
include(modules.cmake)
add_module_library(hello hello.cc)
add_executable(main main.cc)
target_link_libraries(main hello)
Building with clang:
CXX=clang++ cmake .
make
Running:
$ ./main
Hello, modules!
The code is distributed under the permissive MIT license with an optional exception that allows distributing binary code without attribution.
CMake
96.4%
C++
3.3%
Provides the add_module_library CMake function that is a wrapper around add_library with additional module-specific rules.
This module currently supports:
This module can also fallback to a non-modular library for compatibility.
Projects using add_module_library:
hello.cc:
module;
#include <cstdio>
export module hello;
export void hello() { std::printf("Hello, modules!\n"); }
main.cc:
import hello;
int main() { hello(); }
CMakeLists.txt:
cmake_minimum_required(VERSION 3.11)
project(HELLO CXX)
include(modules.cmake)
add_module_library(hello hello.cc)
add_executable(main main.cc)
target_link_libraries(main hello)
Building with clang:
CXX=clang++ cmake .
make
Running:
$ ./main
Hello, modules!
The code is distributed under the permissive MIT license with an optional exception that allows distributing binary code without attribution.
CMake
96.4%
C++
3.3%