Skip to content
Snippets Groups Projects
Commit bc14cc7e authored by Stefan Girke's avatar Stefan Girke
Browse files

add codegen targets in cmake

parent b9736007
No related branches found
No related tags found
No related merge requests found
function(add_code_generate_targets _target)
get_target_property( compiledefs ${_target} COMPILE_DEFINITIONS )
string(REPLACE "compiledefs-NOTFOUND" "" compiledefs "${compiledefs}")
#Add targets and executables
add_executable( ${_target}_generatecode ${ARGN} )
set_property(TARGET ${_target}_generatecode APPEND PROPERTY COMPILE_DEFINITIONS "NDEBUG;BASEFUNCTIONSET_CODEGEN_GENERATE;${compiledefs}")
dune_target_link_libraries( ${_target}_generatecode "${DUNE_LIBS}" )
add_executable( ${_target}_compilecode ${ARGN} )
set_property(TARGET ${_target}_compilecode APPEND PROPERTY COMPILE_DEFINITIONS "NUSE_BASEFUNCTIONSET_CODEGEN;${compiledefs}")
dune_target_link_libraries( ${_target}_compilecode "${DUNE_LIBS}" )
add_custom_target( ${_target}_generate
${CMAKE_COMMAND} -D RUN_CODEGEN_PROGRAM=${CMAKE_CURRENT_BINARY_DIR}/${_target}_generatecode -D RUN_CODEGEN_PARAMFILE="" -P ${CMAKE_SOURCE_DIR}/cmake/scripts/RunGenerate.cmake )
add_custom_target( ${_target}_codegen )
#Add depenencies
add_dependencies( ${_target}_generate ${_target}_generatecode )
add_dependencies( ${_target}_compilecode ${_target}_generate )
add_dependencies( ${_target}_codegen ${_target}_compilecode )
endfunction(add_code_generate_targets _target)
# the main files for all the tests are in the same dir
set(FEMDG_MAIN_DIR "${CMAKE_SOURCE_DIR}/dune/fem-dg/main")
# helper variables
set(SOURCEMAIN ${FEMDG_MAIN_DIR}/main.cc)
set(SOURCEONE ${SOURCEMAIN} ${FEMDG_MAIN_DIR}/main_pol.cc)
set(SOURCEALL ${SOURCEMAIN} ${FEMDG_MAIN_DIR}/main_0.cc ${FEMDG_MAIN_DIR}/main_1.cc ${FEMDG_MAIN_DIR}/main_2.cc ${FEMDG_MAIN_DIR}/main_3.cc ${FEMDG_MAIN_DIR}/main_4.cc)
include(Codegen)
include(TargetDistclean)
message(AUTHOR_WARNING "TODO: Implement module test.")
message( "${RUN_GENERATE_CODE_PROGRAM} fem.eoc.steps:1 femdg.stepper.maximaltimesteps:1 fem.io.outputformat:none ${RUN_GENERATE_CODE_PARAMFILE} " )
execute_process(COMMAND
${RUN_GENERATE_CODE_PROGRAM} fem.eoc.steps:1 femdg.stepper.maximaltimesteps:1 fem.io.outputformat:none ${RUN_GENERATE_CODE_PARAMFILE} )
${RUN_CODEGEN_PROGRAM} fem.eoc.steps:1 femdg.stepper.maximaltimesteps:1 fem.io.outputformat:none ${RUN_CODEGEN_PARAMFILE} )
message("COMMAND ${RUN_GENERATE_CODE_EXEC}" )
execute_process(COMMAND make ${RUN_GENERATE_CODE_EXEC} )
message( "${RUN_GENERATE_CODE_PROGRAM} fem.eoc.steps:1 femdg.stepper.maximaltimesteps:1 fem.io.outputformat:none ${RUN_GENERATE_CODE_PARAMFILE} " )
execute_process(COMMAND
${RUN_GENERATE_CODE_PROGRAM} fem.eoc.steps:1 femdg.stepper.maximaltimesteps:1 fem.io.outputformat:none ${RUN_GENERATE_CODE_PARAMFILE} )
......@@ -18,42 +18,7 @@ dune_target_link_libraries(advdiff "${DUNE_LIBS}")
set_property(TARGET advdiff APPEND PROPERTY
COMPILE_DEFINITIONS "ONLY_ONE_P;POLORDER=2")
#add_code_generate_targets( advdiff main.cc )
#add_code_generate_targets( advdiffall main.cc )
#
#add_custom_target( generate
# ${CMAKE_COMMAND} -D RUN_GENERATE_CODE_PROGRAM=${CMAKE_CURRENT_BINARY_DIR}/${PROG}_generatecode -D RUN_GENERATE_CODE_PARAMFILE="" -P ${CMAKE_SOURCE_DIR}/cmake/scripts/RunGenerate.cmake )
#
#add_custom_target( generate_code
# ${CMAKE_COMMAND} -D RUN_GENERATE_CODE_EXEC=${PROG}_generatecode -D RUN_GENERATE_CODE_PROGRAM=${CMAKE_CURRENT_BINARY_DIR}/${PROG}_generatecode -D RUN_GENERATE_CODE_PARAMFILE="" -P ${CMAKE_SOURCE_DIR}/cmake/scripts/RunGenerateCode.cmake )
#
#add_custom_target( compile_code
# ${PROG}_compilecode )
#
#
#add_custom_target( codegen
# generate_code
# COMMAND compile_code )
#
#add_dependencies( codegen generate_code compile_code )
add_code_generate_targets( advdiff main.cc )
add_code_generate_targets( advdiffall main.cc )
#add_dependencies( advdiff generate )
#generatecode:
# $(MAKE) -i clean
# $(MAKE) CODEGEN_OBJFILE= CXXFLAGS="-g -Wall -Wfatal-errors -DBASEFUNCTIONSET_CODEGEN_GENERATE" $(PROG)
# $(MAKE) generate
#
#generate:
# ./$(PROG) fem.eoc.steps:1 femdg.stepper.maximaltimesteps:1 fem.io.outputformat:none fem.ode.order:1 paramFiles/paramNSWaves
#
#compilecode:
# $(MAKE) clean
# $(MAKE) CXXFLAGS="$(CXXFLAGS) -DUSE_BASEFUNCTIONSET_CODEGEN" $(PROG)
#
#codegen:
# $(MAKE) generatecode
# $(MAKE) compilecode
#
#
dune_add_test( advdiff advdiffall )
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment