Loris Bennett <loris.benn...@fu-berlin.de> writes: > Dear Kenneth, > > Kenneth Hoste <kenneth.ho...@ugent.be> writes: > >> Dear Loris, >> >> On 30/04/2019 11:48, Loris Bennett wrote: >>> Hi, >>> >>> I am trying to write an easyconfig for RAxML-NG and have the following: >>> >>> ###################################################################### >>> >>> easyblock = 'CMakeMake' >>> >>> name = 'RAxML-NG' >>> version = '0.8.1' >>> >>> ompi_ver = '3.1.3' >>> versionsuffix = '-OpenMPI-%s' % ompi_ver >>> >>> homepage = 'https://github.com/amkozlov/raxml-ng' >>> description = "RAxML-NG is a phylogenetic tree inference tool which uses >>> maximum-likelihood (ML) optimality criterion." >>> >>> toolchain = {'name': 'foss', 'version': '2018b'} >>> >>> source_urls = >>> ['https://github.com/amkozlov/raxml-ng/releases/download/%(version)s'] >>> sources = ['%(namelower)s_v%(version)s_linux_x86_64_MPI.zip'] >>> >>> #checksums = [''] >>> >>> builddependencies = [ >>> ('CMake', '3.12.1'), >>> ('Bison', '3.0.5'), >>> ('flex', '2.6.4'), >>> ('GMP', '6.1.2'), >>> ] >>> >>> dependencies = [ >>> ] >>> >>> separate_build_dir = True >>> >>> configopts = "-DUSE_MPI=ON " >>> >>> >>> sanity_check_paths = { >>> 'files': ['bin/raxml-ng'], >>> 'dirs': [''], >>> } >>> >>> sanity_check_commands = ["raxml-ng -v"] >>> >>> moduleclass = 'bio' >>> >>> ###################################################################### >>> >>> The install fails with: >>> >>> == 2019-04-30 11:32:00,287 build_log.py:163 ERROR EasyBuild crashed >>> with an error (at >>> >>> easybuild/software/EasyBuild/3.9.0/lib/python2.7/site-packages/vsc_base-2.8.4-py2.7.egg/vsc/utils/exceptions.py:124 >>> in __init__): cmd " make install " exited with exit code 2 and output: >>> make: *** No rule to make target `install'. Stop. >>> >>> I assume I therefore have to patch the install step into the >>> CMakeLists.txt file. >>> >>> Or is there any alternative (besides getting the authors to fix their >>> program)? >> >> One option is to skip the 'install' step, and just copy the binaries >> yourself, >> for example by glueing a 'cp' command to the 'make' build command via >> buildopts. >> >> See also >> https://github.com/easybuilders/easybuild-easyconfigs/pull/6411/files >> >> This pattern (software using CMake yet not providing a proper installation >> step) >> has been popping up before, so we should look into making an equivalent of >> the >> generic 'MakeCp' easyblock that uses 'cmake' rather than 'configure', so you >> can >> use 'files_to_copy' to specify which files/directories should be copied... > > Thanks for the information. It turns out that it wasn't too > complicated, but it took me a while to identify the correct > CMakeList.txt and work out the right module name. Then I was just able > to add the following patch: > > > diff -ru raxml-ng.orig/src/CMakeLists.txt raxml-ng/src/CMakeLists.txt > --- raxml-ng.orig/src/CMakeLists.txt 2019-03-05 18:30:24.000000000 > +0100 > +++ raxml-ng/src/CMakeLists.txt 2019-05-02 17:09:00.895400612 +0200 > @@ -101,3 +101,5 @@ > endif() > > set_target_properties(raxml_module PROPERTIES PREFIX "") > + > +install(TARGETS raxml_module DESTINATION bin) > > However, your suggestion of having a 'CmakeCopy' seems like a good > idea. Nevertheless, I'll write to the developer of RAxML-NG and ask > whether an install step can be added.
The developer has added the install step, so no there is no urgency for 'CmakeCp' with regard to RAxML-NG. Cheers, Loris -- Dr. Loris Bennett (Mr.) ZEDAT, Freie Universität Berlin Email loris.benn...@fu-berlin.de