Ok powinno być proste, ale nie może tego zrozumieć. Mam dwa projekty, ProjectA i ProjectB. ProjectB zależy od starego projektu, ProjectA. Teraz chcę zbudować ProjectB. I nie chcę teraz zmieniać struktury katalogów dla ProjectA. Problem polega na tym, że zawsze użyłem -outputdir bin z ProjectA.Łączenie oddzielnych projektów w GHC
Projecta wyglądał następująco:
ProjectA/
bin/
(*.o, *.hi in proper paths, sometimes also *.p_o and *.p_hi)
Foo/
ModuleX.hs
ModuleA.hs
ModuleB.hs
Teraz mam inny folder z ProjectB z własnym osobnym -outputdir. Muszę tylko połączyć się ze starymi plikami obiektów projektu (bez ponownej kompilacji plików ProjectA). Zdaję sobie sprawę, że mogę prawdopodobnie kabalizować ProjectA ... ale czy nie ma prostszego sposobu?
wydaje mi się, że potrzebny jest system kompilacji. Jeśli nie lubisz cabal (lub makefiles) spróbuj shake (http://community.haskell.org/~ndm/shake/) – Jonke
Dzięki, sprawię, że się potrząśniesz, ale tak naprawdę nie potrzebuję wymiany. W rzeczywistości jestem teraz szczęśliwym użytkownikiem make. Problem polega na tym, że GHC wydaje się mieć dziwny sposób wyszukiwania plików .o i .hi, które nie wydają się wystarczająco konfigurowalne. Innymi słowy, jeśli dodaję -outputdir bin ... będzie szukał skompilowanych plików w bin, i nie mogę znaleźć sposobu na zmianę tego do ProjectA/bin – Samee