Files
namespaces-in-c/CMakeLists.txt
olemorud 0c33a58da0 Test pseudo-namespaces in C
In C you can create pseudo-namespaces by abusing structs of function
pointers, making function calls look like `module.func(x)` instead of
`func(x)`.

A lot of people online spout that this creates overhead, but this should
show that clang>=15.0.7 will still inline such function calls. GCC 11.3.1
is unable  to inline the function, but will still call the function
directly.
2023-06-06 11:32:12 +02:00

21 lines
297 B
CMake

cmake_minimum_required(VERSION 3.13)
project(Namespaces)
add_executable(main
module.c
main.c)
target_compile_options(main
PRIVATE
-Werror -Wall -Wextra -O3 -g -std=c2x -flto)
target_link_options(main
PRIVATE
-flto -Wl,-O2)
target_compile_definitions(main
PRIVATE
-DNAMESPACES)