{"action":"created","issue":{"url":"https://api.github.com/repos/gregorio-project/gregorio/issues/163","labels_url":"https://api.github.com/repos/gregorio-project/gregorio/issues/163/labels{/name}","comments_url":"https://api.github.com/repos/gregorio-project/gregorio/issues/163/comments","events_url":"https://api.github.com/repos/gregorio-project/gregorio/issues/163/events","html_url":"https://github.com/gregorio-project/gregorio/issues/163","id":64718747,"number":163,"title":"reduce over-engineering","user":{"login":"eroux","id":60868,"avatar_url":"https://avatars.githubusercontent.com/u/60868?v=3","gravatar_id":"","url":"https://api.github.com/users/eroux","html_url":"https://github.com/eroux","followers_url":"https://api.github.com/users/eroux/followers","following_url":"https://api.github.com/users/eroux/following{/other_user}","gists_url":"https://api.github.com/users/eroux/gists{/gist_id}","starred_url":"https://api.github.com/users/eroux/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/eroux/subscriptions","organizations_url":"https://api.github.com/users/eroux/orgs","repos_url":"https://api.github.com/users/eroux/repos","events_url":"https://api.github.com/users/eroux/events{/privacy}","received_events_url":"https://api.github.com/users/eroux/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/gregorio-project/gregorio/labels/build/install","name":"build/install","color":"5319e7"},{"url":"https://api.github.com/repos/gregorio-project/gregorio/labels/C","name":"C","color":"fad8c7"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":4,"created_at":"2015-03-27T08:26:29Z","updated_at":"2015-03-27T11:54:59Z","closed_at":null,"body":"Currently Gregorio is built in the following way (if `--enable-all-static` is not present)\r\n\r\n * a small cli tool, loading a library (gregorio.so), the library could be used by other tools\r\n * some plugins (xml, gabc, gtex, otex, dump), dynamically loaded by the library, which makes it possible for someone to build his own plugin and make gregorio use it\r\n\r\nThat was very interesting when I introduced the feature, and this is what made a second student project on gregorio possible at my school. So it was a good exercise and I learned many thing. Problem is, this is seriously over-engineered and make the code and the directory structure way too complex. Also, it makes it very difficult to compile with something else than autotools...\r\n\r\nI propose to remove this system, and thus simplify the code... What do you think?\r\n\r\nI also think it would be good to put all C files in `src/`, as it would be more in line with the code structure. It would also make a `CMakeList.txt` file possible in this directory, enabling the compilation under Windows (CMake has a windows version). We could also reorganise the repository and have a `cli` directory and a `GregorioTeX` directory... What do you think?\r\n\r\nI think it belongs the develop branch, not the release-3.0 one."},"comment":{"url":"https://api.github.com/repos/gregorio-project/gregorio/issues/comments/86912189","html_url":"https://github.com/gregorio-project/gregorio/issues/163#issuecomment-86912189","issue_url":"https://api.github.com/repos/gregorio-project/gregorio/issues/163","id":86912189,"user":{"login":"eroux","id":60868,"avatar_url":"https://avatars.githubusercontent.com/u/60868?v=3","gravatar_id":"","url":"https://api.github.com/users/eroux","html_url":"https://github.com/eroux","followers_url":"https://api.github.com/users/eroux/followers","following_url":"https://api.github.com/users/eroux/following{/other_user}","gists_url":"https://api.github.com/users/eroux/gists{/gist_id}","starred_url":"https://api.github.com/users/eroux/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/eroux/subscriptions","organizations_url":"https://api.github.com/users/eroux/orgs","repos_url":"https://api.github.com/users/eroux/repos","events_url":"https://api.github.com/users/eroux/events{/privacy}","received_events_url":"https://api.github.com/users/eroux/received_events","type":"User","site_admin":false},"created_at":"2015-03-27T11:54:59Z","updated_at":"2015-03-27T11:54:59Z","body":"the CMakeFile.txt will be only for the C files, and it's just one unique file, it will be very easy to maintain, much easier than building everything (TeX, fonts, distribution tarball, etc.), it will be basically just the list of C files"}}