Merge pull request #321 from kljohann/cmake

Clean up CMake files
This commit is contained in:
John Wiegley 2014-09-11 12:58:51 +01:00
commit 8fc83e8148
3 changed files with 39 additions and 53 deletions

3
acprep
View file

@ -815,9 +815,6 @@ class PrepareBuild(CommandLineApp):
if self.options.boost_include: if self.options.boost_include:
conf_args.append('-DBOOST_INCLUDEDIR=%s' % conf_args.append('-DBOOST_INCLUDEDIR=%s' %
self.options.boost_include) self.options.boost_include)
if self.options.build_dir:
conf_args.append('-DBUILD_DIR=%s' %
self.options.build_dir)
if self.prefix_directory(): if self.prefix_directory():
conf_args.append('-DCMAKE_INSTALL_PREFIX=%s' % self.prefix_directory()) conf_args.append('-DCMAKE_INSTALL_PREFIX=%s' % self.prefix_directory())

View file

@ -27,27 +27,29 @@ endif()
######################################################################## ########################################################################
if (NOT BUILD_DOCS) if (BUILD_DOCS)
add_custom_target(doc DEPENDS doc.doxygen) find_program(MAKEINFO makeinfo)
return() find_program(TEXI2PDF texi2pdf)
endif() find_program(TEX tex)
find_program(MAN2HTML man2html)
set(info_files ledger3.texi ledger-mode.texi) find_program(GROFF groff)
set(ledger_info_files ledger3.texi ledger-mode.texi)
find_program(MAKEINFO makeinfo)
find_program(TEXI2PDF texi2pdf)
find_program(TEX tex)
find_program(MAN2HTML man2html)
find_program(GROFF groff)
########################################################################
foreach(file ${info_files})
get_filename_component(file_base ${file} NAME_WE)
if (NOT MAKEINFO) if (NOT MAKEINFO)
message(WARNING "Could not find makeinfo. Info version of documentation cannot be built.") message(WARNING "Could not find makeinfo. Info version of documentation cannot be built.")
else() endif()
if (NOT TEXI2PDF OR NOT TEX)
message(WARNING "Could not find texi2pdf or tex. PDF version of documentation will not be built.")
endif()
endif()
########################################################################
foreach(file ${ledger_info_files})
get_filename_component(file_base ${file} NAME_WE)
if (MAKEINFO)
add_custom_command(OUTPUT ${file_base}.info add_custom_command(OUTPUT ${file_base}.info
COMMAND makeinfo --force --no-split -o ${file_base}.info ${CMAKE_CURRENT_SOURCE_DIR}/${file} COMMAND makeinfo --force --no-split -o ${file_base}.info ${CMAKE_CURRENT_SOURCE_DIR}/${file}
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${file} DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${file}
@ -55,20 +57,15 @@ foreach(file ${info_files})
list(APPEND ledger_doc_files ${file_base}.info) list(APPEND ledger_doc_files ${file_base}.info)
endif() endif()
if (BUILD_WEB_DOCS) if (BUILD_WEB_DOCS AND MAKEINFO)
if (NOT MAKEINFO)
message(WARNING "Could not find makeinfo. HTML version of documentation cannot be built.")
endif()
add_custom_command(OUTPUT ${file_base}.html add_custom_command(OUTPUT ${file_base}.html
COMMAND makeinfo --force --html --no-split -o ${file_base}.html ${CMAKE_CURRENT_SOURCE_DIR}/${file} COMMAND makeinfo --force --html --no-split -o ${file_base}.html ${CMAKE_CURRENT_SOURCE_DIR}/${file}
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${file} DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${file}
VERBATIM) VERBATIM)
list(APPEND ledger_doc_files ${file_base}.html) list(APPEND ledger_doc_files ${file_base}.html)
endif(BUILD_WEB_DOCS) endif()
if (NOT TEXI2PDF OR NOT TEX) if (TEXI2PDF AND TEX)
message(WARNING "Could not find texi2pdf or tex. PDF version of documentation will not be built.")
else()
if (BUILD_A4_PDF) if (BUILD_A4_PDF)
set(papersize --texinfo=@afourpaper) set(papersize --texinfo=@afourpaper)
endif() endif()
@ -117,22 +114,16 @@ if (CMAKE_INSTALL_MANDIR)
DESTINATION ${CMAKE_INSTALL_MANDIR}/man1 COMPONENT doc) DESTINATION ${CMAKE_INSTALL_MANDIR}/man1 COMPONENT doc)
endif(CMAKE_INSTALL_MANDIR) endif(CMAKE_INSTALL_MANDIR)
foreach(file ${info_files}) foreach(file ${ledger_doc_files})
get_filename_component(file_base ${file} NAME_WE) get_filename_component(file_ext ${file} EXT)
if (CMAKE_SOURCE_DIR STREQUAL BUILD_DIR) if(file_ext STREQUAL ".info")
set(doc_dir ${CMAKE_CURRENT_SOURCE_DIR}) if(CMAKE_INSTALL_INFODIR)
else() install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${file}
get_filename_component(dir_base ${CMAKE_CURRENT_SOURCE_DIR} NAME_WE) DESTINATION ${CMAKE_INSTALL_INFODIR} COMPONENT doc)
set(doc_dir "${CMAKE_SOURCE_DIR}/${BUILD_DIR}/${dir_base}") endif()
endif() elseif(CMAKE_INSTALL_DOCDIR)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${file}
install(FILES ${doc_dir}/${file_base}.info
DESTINATION ${CMAKE_INSTALL_INFODIR} COMPONENT doc)
install(FILES ${doc_dir}/${file_base}.pdf
DESTINATION ${CMAKE_INSTALL_DOCDIR} COMPONENT doc OPTIONAL)
if (BUILD_WEB_DOCS)
install(FILES ${doc_dir}/${file_base}.html
DESTINATION ${CMAKE_INSTALL_DOCDIR} COMPONENT doc) DESTINATION ${CMAKE_INSTALL_DOCDIR} COMPONENT doc)
endif(BUILD_WEB_DOCS) endif()
endforeach() endforeach()

View file

@ -6,8 +6,6 @@ if (NOT PROCESSORS EQUAL 0)
set(CTEST_BUILD_FLAGS -j${JOBS}) set(CTEST_BUILD_FLAGS -j${JOBS})
endif() endif()
get_target_property(LEDGER_LOCATION ledger LOCATION)
add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND} ${CTEST_BUILD_FLAGS}) add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND} ${CTEST_BUILD_FLAGS})
add_subdirectory(unit) add_subdirectory(unit)
@ -23,9 +21,9 @@ macro(add_ledger_harness_tests _class)
get_filename_component(TestFile_Name ${TestFile} NAME_WE) get_filename_component(TestFile_Name ${TestFile} NAME_WE)
string(FIND ${TestFile_Name} "_py" TestFile_IsPythonTest) string(FIND ${TestFile_Name} "_py" TestFile_IsPythonTest)
if ((TestFile_IsPythonTest EQUAL -1) OR HAVE_BOOST_PYTHON) if ((TestFile_IsPythonTest EQUAL -1) OR HAVE_BOOST_PYTHON)
add_test(${_class}Test_${TestFile_Name} add_test(NAME ${_class}Test_${TestFile_Name}
${PYTHON_EXECUTABLE} ${PROJECT_SOURCE_DIR}/test/RegressTests.py COMMAND ${PYTHON_EXECUTABLE} ${PROJECT_SOURCE_DIR}/test/RegressTests.py
${LEDGER_LOCATION} ${PROJECT_SOURCE_DIR} $<TARGET_FILE:ledger> ${PROJECT_SOURCE_DIR}
${TestFile} ${TEST_PYTHON_FLAGS}) ${TestFile} ${TEST_PYTHON_FLAGS})
set_target_properties(check set_target_properties(check
PROPERTIES DEPENDS ${_class}Test_${TestFile_Name}) PROPERTIES DEPENDS ${_class}Test_${TestFile_Name})
@ -44,9 +42,9 @@ add_subdirectory(regress)
# file(GLOB ${_class}_TESTS ${PROJECT_SOURCE_DIR}/doc/*.texi) # file(GLOB ${_class}_TESTS ${PROJECT_SOURCE_DIR}/doc/*.texi)
# foreach(TestFile ${${_class}_TESTS}) # foreach(TestFile ${${_class}_TESTS})
# get_filename_component(TestFile_Name ${TestFile} NAME_WE) # get_filename_component(TestFile_Name ${TestFile} NAME_WE)
# add_test(${_class}Test_${TestFile_Name} # add_test(NAME ${_class}Test_${TestFile_Name}
# ${PYTHON_EXECUTABLE} ${PROJECT_SOURCE_DIR}/test/DocTests.py # COMMAND ${PYTHON_EXECUTABLE} ${PROJECT_SOURCE_DIR}/test/DocTests.py
# --ledger ${LEDGER_LOCATION} --file ${TestFile}) # --ledger $<TARGET_FILE:ledger> --file ${TestFile})
# set_target_properties(check PROPERTIES DEPENDS ${_class}Test_${TestFile_Name}) # set_target_properties(check PROPERTIES DEPENDS ${_class}Test_${TestFile_Name})
# endforeach() # endforeach()
#endif() #endif()