Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

build: add option BUILD_TOOLS #93

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
99 changes: 6 additions & 93 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@ check_include_files(unistd.h HAVE_UNISTD_H)
check_include_files(humdrum.h HAVE_HUMDRUM_H)
check_include_files(sys/io.h HAVE_SYS_IO_H)

option(BUILD_TOOLS "build tools" ON)

##############################
##
## Operating-system specific settings:
Expand Down Expand Up @@ -65,103 +67,14 @@ set(HDRS

add_library(midifile STATIC ${SRCS} ${HDRS})

##############################
##
## Programs:
##

add_executable(80off tools/80off.cpp)
add_executable(asciimidi tools/asciimidi.cpp)
add_executable(binasc tools/binasc.cpp)
add_executable(createmidifile tools/createmidifile.cpp)
add_executable(createmidifile2 tools/createmidifile2.cpp)
add_executable(drumtab tools/drumtab.cpp)
add_executable(durations tools/durations.cpp)
add_executable(mid2mat tools/mid2mat.cpp)
add_executable(mid2mtb tools/mid2mtb.cpp)
add_executable(mid2svg tools/mid2svg.cpp)
add_executable(midi2binasc tools/midi2binasc.cpp)
add_executable(midi2melody tools/midi2melody.cpp)
add_executable(midi2notes tools/midi2notes.cpp)
add_executable(midi2skini tools/midi2skini.cpp)
add_executable(midi2text tools/midi2text.cpp)
add_executable(midicater tools/midicater.cpp)
add_executable(midimixup tools/midimixup.cpp)
add_executable(miditime tools/miditime.cpp)
add_executable(perfid tools/perfid.cpp)
add_executable(retick tools/retick.cpp)
add_executable(shutak tools/shutak.cpp)
add_executable(smfdur tools/smfdur.cpp)
add_executable(stretch tools/stretch.cpp)
add_executable(sysextest tools/sysextest.cpp)
add_executable(text2midi tools/text2midi.cpp)
add_executable(textmidi tools/textmidi.cpp)
add_executable(toascii tools/toascii.cpp)
add_executable(tobin tools/tobin.cpp)
add_executable(tobinary tools/tobinary.cpp)
add_executable(todec tools/todec.cpp)
add_executable(tohex tools/tohex.cpp)
add_executable(type0 tools/type0.cpp)
add_executable(vlv tools/vlv.cpp)

target_link_libraries(80off midifile)
target_link_libraries(asciimidi midifile)
target_link_libraries(binasc midifile)
target_link_libraries(createmidifile midifile)
target_link_libraries(createmidifile2 midifile)
target_link_libraries(drumtab midifile)
target_link_libraries(durations midifile)
target_link_libraries(mid2mat midifile)
target_link_libraries(mid2mtb midifile)
target_link_libraries(mid2svg midifile)
target_link_libraries(midi2binasc midifile)
target_link_libraries(midi2melody midifile)
target_link_libraries(midi2notes midifile)
target_link_libraries(midi2skini midifile)
target_link_libraries(midi2text midifile)
target_link_libraries(midicater midifile)
target_link_libraries(midimixup midifile)
target_link_libraries(miditime midifile)
target_link_libraries(perfid midifile)
target_link_libraries(retick midifile)
target_link_libraries(shutak midifile)
target_link_libraries(smfdur midifile)
target_link_libraries(stretch midifile)
target_link_libraries(sysextest midifile)
target_link_libraries(text2midi midifile)
target_link_libraries(textmidi midifile)
target_link_libraries(toascii midifile)
target_link_libraries(tobin midifile)
target_link_libraries(tobinary midifile)
target_link_libraries(todec midifile)
target_link_libraries(tohex midifile)
target_link_libraries(type0 midifile)
target_link_libraries(vlv midifile)

if(HAVE_UNISTD_H AND HAVE_SYS_IO_H)
add_executable(midi2beep tools/midi2beep.cpp)

target_link_libraries(midi2beep midifile)
endif()

# The following programs require headers from humextra repository.
# <https://github.com/humdrum-tools/humextra>
if(HAVE_HUMDRUM_H)
add_executable(henonfile tools/henonfile.cpp)
add_executable(mid2hum tools/mid2hum.cpp)
add_executable(midiexcerpt tools/midiexcerpt.cpp)
add_executable(peep2midi tools/peep2midi.cpp)

target_link_libraries(henonfile midifile)
target_link_libraries(mid2hum midifile)
target_link_libraries(midiexcerpt midifile)
target_link_libraries(peep2midi midifile)
endif()

install(TARGETS midifile
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)

if(BUILD_TOOLS)
add_subdirectory(tools)
endif()

install(FILES ${HDRS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/midifile)
87 changes: 87 additions & 0 deletions tools/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
add_executable(80off 80off.cpp)
add_executable(asciimidi asciimidi.cpp)
add_executable(binasc binasc.cpp)
add_executable(createmidifile createmidifile.cpp)
add_executable(createmidifile2 createmidifile2.cpp)
add_executable(drumtab drumtab.cpp)
add_executable(durations durations.cpp)
add_executable(mid2mat mid2mat.cpp)
add_executable(mid2mtb mid2mtb.cpp)
add_executable(mid2svg mid2svg.cpp)
add_executable(midi2binasc midi2binasc.cpp)
add_executable(midi2melody midi2melody.cpp)
add_executable(midi2notes midi2notes.cpp)
add_executable(midi2skini midi2skini.cpp)
add_executable(midi2text midi2text.cpp)
add_executable(midicater midicater.cpp)
add_executable(midimixup midimixup.cpp)
add_executable(miditime miditime.cpp)
add_executable(perfid perfid.cpp)
add_executable(retick retick.cpp)
add_executable(shutak shutak.cpp)
add_executable(smfdur smfdur.cpp)
add_executable(stretch stretch.cpp)
add_executable(sysextest sysextest.cpp)
add_executable(text2midi text2midi.cpp)
add_executable(textmidi textmidi.cpp)
add_executable(toascii toascii.cpp)
add_executable(tobin tobin.cpp)
add_executable(tobinary tobinary.cpp)
add_executable(todec todec.cpp)
add_executable(tohex tohex.cpp)
add_executable(type0 type0.cpp)
add_executable(vlv vlv.cpp)

target_link_libraries(80off midifile)
target_link_libraries(asciimidi midifile)
target_link_libraries(binasc midifile)
target_link_libraries(createmidifile midifile)
target_link_libraries(createmidifile2 midifile)
target_link_libraries(drumtab midifile)
target_link_libraries(durations midifile)
target_link_libraries(mid2mat midifile)
target_link_libraries(mid2mtb midifile)
target_link_libraries(mid2svg midifile)
target_link_libraries(midi2binasc midifile)
target_link_libraries(midi2melody midifile)
target_link_libraries(midi2notes midifile)
target_link_libraries(midi2skini midifile)
target_link_libraries(midi2text midifile)
target_link_libraries(midicater midifile)
target_link_libraries(midimixup midifile)
target_link_libraries(miditime midifile)
target_link_libraries(perfid midifile)
target_link_libraries(retick midifile)
target_link_libraries(shutak midifile)
target_link_libraries(smfdur midifile)
target_link_libraries(stretch midifile)
target_link_libraries(sysextest midifile)
target_link_libraries(text2midi midifile)
target_link_libraries(textmidi midifile)
target_link_libraries(toascii midifile)
target_link_libraries(tobin midifile)
target_link_libraries(tobinary midifile)
target_link_libraries(todec midifile)
target_link_libraries(tohex midifile)
target_link_libraries(type0 midifile)
target_link_libraries(vlv midifile)

if(HAVE_UNISTD_H AND HAVE_SYS_IO_H)
add_executable(midi2beep midi2beep.cpp)

target_link_libraries(midi2beep midifile)
endif()

# The following programs require headers from humextra repository.
# <https://github.com/humdrum-tools/humextra>
if(HAVE_HUMDRUM_H)
add_executable(henonfile henonfile.cpp)
add_executable(mid2hum mid2hum.cpp)
add_executable(midiexcerpt midiexcerpt.cpp)
add_executable(peep2midi peep2midi.cpp)

target_link_libraries(henonfile midifile)
target_link_libraries(mid2hum midifile)
target_link_libraries(midiexcerpt midifile)
target_link_libraries(peep2midi midifile)
endif()