Skip to content

Commit

Permalink
wip
Browse files Browse the repository at this point in the history
  • Loading branch information
jll63 committed Aug 19, 2024
1 parent 722f41c commit dfc7faf
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 45 deletions.
1 change: 0 additions & 1 deletion examples/generator/generator_app.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,6 @@ int main() {
// // our yardstick: an ordinary virtual function call
// felix.kick();

std::cout << "ok\n";
call_kick(cat);
call_meet(dog, cat);

Expand Down
88 changes: 44 additions & 44 deletions tests/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -82,49 +82,49 @@ if (NOT MSVC)
add_executable(test_generator_forward_decls test_generator_forward_decls.cpp)
target_link_libraries(test_generator_forward_decls YOMM2::yomm2 ${CMAKE_THREAD_LIBS_INIT})
add_test(NAME test_generator_forward_decls COMMAND test_generator_forward_decls)
endif()

# Thanks to https://stackoverflow.com/users/3440745/tsyvarev for providing the
# following cmake incantations.

if(CMAKE_CONFIGURATION_TYPES)
# Multi-configuration generator
#
# Explicitly use generator expression,
# so CMake won't automatically append the subdirectory with a config name.
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/$<CONFIG>)
else()
# Single-configuration generator
#
# While it is allowable to create config-specific directory,
# we don't do that: every configuration already has its own build tree.
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
# Thanks to https://stackoverflow.com/users/3440745/tsyvarev for providing the
# following cmake incantations.

if(CMAKE_CONFIGURATION_TYPES)
# Multi-configuration generator
#
# Explicitly use generator expression,
# so CMake won't automatically append the subdirectory with a config name.
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/$<CONFIG>)
else()
# Single-configuration generator
#
# While it is allowable to create config-specific directory,
# we don't do that: every configuration already has its own build tree.
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
endif()

# The executable will be created in the directory specified by
# CMAKE_RUNTIME_OUTPUT_DIRECTORY variable.

add_executable(test_generator_gen test_generator.cpp)
target_compile_definitions(test_generator_gen PRIVATE GENERATE)
target_link_libraries(test_generator_gen YOMM2::yomm2)
add_test(NAME test_generator_gen COMMAND test_generator_gen)

set(GENERATED_FILES
"${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/test_generator_slots.hpp"
"${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/test_generator_tables.hpp"
)
add_custom_command(
OUTPUT ${GENERATED_FILES}
DEPENDS test_generator_gen
COMMAND test_generator_gen
WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
)
add_custom_target(test_generator_generate DEPENDS ${GENERATED_FILES})
add_library(test_generator_headers INTERFACE)
add_dependencies(test_generator_headers test_generator_generate)
target_include_directories(test_generator_headers INTERFACE ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})

add_executable(test_generator test_generator.cpp)
add_dependencies(test_generator test_generator_headers)
target_link_libraries(test_generator PRIVATE test_generator_headers YOMM2::yomm2)
add_test(NAME test_generator COMMAND test_generator)
endif()

# The executable will be created in the directory specified by
# CMAKE_RUNTIME_OUTPUT_DIRECTORY variable.

add_executable(test_generator_gen test_generator.cpp)
target_compile_definitions(test_generator_gen PRIVATE GENERATE)
target_link_libraries(test_generator_gen YOMM2::yomm2)
add_test(NAME test_generator_gen COMMAND test_generator_gen)

set(GENERATED_FILES
"${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/test_generator_slots.hpp"
"${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/test_generator_tables.hpp"
)
add_custom_command(
OUTPUT ${GENERATED_FILES}
DEPENDS test_generator_gen
COMMAND test_generator_gen
WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
)
add_custom_target(test_generator_generate DEPENDS ${GENERATED_FILES})
add_library(test_generator_headers INTERFACE)
add_dependencies(test_generator_headers test_generator_generate)
target_include_directories(test_generator_headers INTERFACE ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})

add_executable(test_generator test_generator.cpp)
add_dependencies(test_generator test_generator_headers)
target_link_libraries(test_generator PRIVATE test_generator_headers YOMM2::yomm2)
add_test(NAME test_generator COMMAND test_generator)

0 comments on commit dfc7faf

Please sign in to comment.