{"action":"opened","issue":{"url":"https://api.github.com/repos/bbatsov/projectile/issues/661","labels_url":"https://api.github.com/repos/bbatsov/projectile/issues/661/labels{/name}","comments_url":"https://api.github.com/repos/bbatsov/projectile/issues/661/comments","events_url":"https://api.github.com/repos/bbatsov/projectile/issues/661/events","html_url":"https://github.com/bbatsov/projectile/issues/661","id":58590059,"number":661,"title":"Clarify documentation regarding compile-command","user":{"login":"horus107","id":1028028,"avatar_url":"https://avatars.githubusercontent.com/u/1028028?v=3","gravatar_id":"","url":"https://api.github.com/users/horus107","html_url":"https://github.com/horus107","followers_url":"https://api.github.com/users/horus107/followers","following_url":"https://api.github.com/users/horus107/following{/other_user}","gists_url":"https://api.github.com/users/horus107/gists{/gist_id}","starred_url":"https://api.github.com/users/horus107/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/horus107/subscriptions","organizations_url":"https://api.github.com/users/horus107/orgs","repos_url":"https://api.github.com/users/horus107/repos","events_url":"https://api.github.com/users/horus107/events{/privacy}","received_events_url":"https://api.github.com/users/horus107/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2015-02-23T14:11:42Z","updated_at":"2015-02-23T14:11:42Z","closed_at":null,"body":"The doc of projectile is somehow confusing regarding the compile-command:\r\n\r\nIf you need to set some variables according to selected project, you can use standard Emacs feature    called Per-Directory Local Variables. To use it you must create file named .dir-locals.el inside project   directory. This file must contain something like this:\r\n\r\n((nil . ((secret-ftp-password . \"secret\")\r\n         (compile-command . \"make target-x\")\r\n         (eval . (progn\r\n                   (defun my-project-specific-function ()\r\n                     ;; ...\r\n                     ))))\r\n (c-mode . (c-file-style . \"BSD\")))\r\n\r\nBut furthermore there is:\r\n\r\nConfigure Project's Compilation Command\r\n\r\nOverriding pieces of Projectile might require some hacking on your part -- reading the source, advising functions, etc.\r\n\r\nFor example, by reading Projectile's source, you could discover that a project's compilation command can be specified with this code:\r\n\r\n((nil . ((eval . (progn\r\n                   ;; require projectile; the following code will fail\r\n                   ;; without it.\r\n                   (require 'projectile)\r\n                   ;; provide a fake \"recent\" compilation cmd\r\n                   ;; which will be returned by the function\r\n                   ;; `projectile-compilation-command`\r\n                   (puthash (projectile-project-root)\r\n                            \"./command-to-compile-your-project.sh\"\r\n                            projectile-compilation-cmd-map))))))\r\n\r\n\r\nIt gives some other way of changing compile-command.\r\nWhat is the way to go there?"}}