dlang-community / DCD

The D Completion Daemon is an auto-complete program for the D programming language
GNU General Public License v3.0
348 stars 72 forks source link

DC environment variable is not recognised #653

Open tastyminerals opened 2 years ago

tastyminerals commented 2 years ago

Optionally set the environment variable DC if you wish to use another compiler than the DMD known by the system.

I have my shell env var set to

$ echo $DC                                                                                                  
/usr/local/bin/ldc

but make still attempts to use dmd.

mkdir -p bin
dmd common/src/dcd/common/dcd_version.d common/src/dcd/common/constants.d common/src/dcd/common/socket.d common/src/dcd/common/messages.d common/src/dcd/common/constants2.d src/dcd/server/autocomplete/package.d src/dcd/server/autocomplete/util.d src/dcd/server/autocomplete/localuse.d src/dcd/server/autocomplete/complete.d src/dcd/server/autocomplete/symbols.d src/dcd/server/autocomplete/doc.d src/dcd/server/server.d src/dcd/server/main.d dsymbol/src/dsymbol/import_.d dsymbol/src/dsymbol/modulecache.d dsymbol/src/dsymbol/string_interning.d dsymbol/src/dsymbol/cache_entry.d dsymbol/src/dsymbol/deferred.d dsymbol/src/dsymbol/tests.d dsymbol/src/dsymbol/symbol.d dsymbol/src/dsymbol/conversion/package.d dsymbol/src/dsymbol/conversion/second.d dsymbol/src/dsymbol/conversion/first.d dsymbol/src/dsymbol/semantic.d dsymbol/src/dsymbol/type_lookup.d dsymbol/src/dsymbol/scope_.d dsymbol/src/dsymbol/builtin/names.d dsymbol/src/dsymbol/builtin/symbols.d stdx-allocator/source/stdx/allocator/common.d stdx-allocator/source/stdx/allocator/package.d stdx-allocator/source/stdx/allocator/building_blocks/free_list.d stdx-allocator/source/stdx/allocator/building_blocks/bucketizer.d stdx-allocator/source/stdx/allocator/building_blocks/package.d stdx-allocator/source/stdx/allocator/building_blocks/quantizer.d stdx-allocator/source/stdx/allocator/building_blocks/region.d stdx-allocator/source/stdx/allocator/building_blocks/segregator.d stdx-allocator/source/stdx/allocator/building_blocks/affix_allocator.d stdx-allocator/source/stdx/allocator/building_blocks/scoped_allocator.d stdx-allocator/source/stdx/allocator/building_blocks/kernighan_ritchie.d stdx-allocator/source/stdx/allocator/building_blocks/null_allocator.d stdx-allocator/source/stdx/allocator/building_blocks/fallback_allocator.d stdx-allocator/source/stdx/allocator/building_blocks/allocator_list.d stdx-allocator/source/stdx/allocator/building_blocks/bitmapped_block.d stdx-allocator/source/stdx/allocator/building_blocks/free_tree.d stdx-allocator/source/stdx/allocator/building_blocks/stats_collector.d stdx-allocator/source/stdx/allocator/typed.d stdx-allocator/source/stdx/allocator/gc_allocator.d stdx-allocator/source/stdx/allocator/showcase.d stdx-allocator/source/stdx/allocator/internal.d stdx-allocator/source/stdx/allocator/mmap_allocator.d stdx-allocator/source/stdx/allocator/mallocator.d libdparse/src/dparse/rollback_allocator.d libdparse/src/dparse/ast.d libdparse/src/dparse/entities.d libdparse/src/dparse/strings.d libdparse/src/dparse/stack_buffer.d libdparse/src/dparse/lexer.d libdparse/src/dparse/formatter.d libdparse/src/dparse/parser.d libdparse/src/dparse/trivia.d libdparse/src/std/experimental/lexer.d containers/src/containers/package.d containers/src/containers/slist.d containers/src/containers/hashset.d containers/src/containers/unrolledlist.d containers/src/containers/internal/backwards.d containers/src/containers/internal/hash.d containers/src/containers/internal/element_type.d containers/src/containers/internal/storage_type.d containers/src/containers/internal/mixins.d containers/src/containers/internal/node.d containers/src/containers/dynamicarray.d containers/src/containers/ttree.d containers/src/containers/simdset.d containers/src/containers/immutablehashset.d containers/src/containers/treemap.d containers/src/containers/openhashset.d containers/src/containers/cyclicbuffer.d containers/src/containers/hashmap.d msgpack-d/src//msgpack/common.d msgpack-d/src//msgpack/buffer.d msgpack-d/src//msgpack/package.d msgpack-d/src//msgpack/register.d msgpack-d/src//msgpack/attribute.d msgpack-d/src//msgpack/exception.d msgpack-d/src//msgpack/unpacker.d msgpack-d/src//msgpack/streaming_unpacker.d msgpack-d/src//msgpack/packer.d msgpack-d/src//msgpack/value.d -Icontainers/src -Imsgpack-d/src -Ilibdparse/src -Idsymbol/src -Istdx-allocator/source -Jbin -wi -O -release -inline -ofbin/dcd-server
make: dmd: No such file or directory
make: *** [dmdserver] Error 1
WebFreak001 commented 2 years ago

no mention of $DC or ${DC} in the makefile anywhere, so probably just not implemented. Windows has it at the start though.

tastyminerals commented 2 years ago

I managed to get it working by modifying the makefile though.

nico-agf33 commented 2 years ago

I managed to get it working by modifying the makefile though.

What modifications did you perform inside the makefile? I'm having this same problem and I can't find any workaround

tastyminerals commented 2 years ago

Actually just minor changes:

[I] pavels@Pavels-MacBook-Pro ~/D/g/DCD (master)> git diff                                                                                                                                         (base)
diff --git a/makefile b/makefile
index 0adeb83..b8e1af9 100644
--- a/makefile
+++ b/makefile
@@ -1,6 +1,6 @@
 .PHONY: all

-all: dmd
+all: ldc
 dmd: dmdserver dmdclient
 debug: dmdclient debugserver
 gdc: gdcserver gdcclient
@@ -8,13 +8,13 @@ ldc: ldcserver ldcclient

 DMD := dmd
 GDC := gdc
-LDC := ldc2
+LDC := ldc

 DPARSE_DIR := libdparse
 DSYMBOL_DIR := dsymbol
 STDXALLOC_DIR := stdx-allocator

-SHELL:=/bin/bash
+SHELL:=/opt/homebrew/bin/fish

 githash:
        @mkdir -p bin

ldc is aliased to /usr/local/bin/ldc which is a symbolic link to an actual ldc2 binary.

nico-agf33 commented 2 years ago

Well it did the trick for me as well, thank you!

baryluk commented 9 months ago

I am following README and got the same issue.


user@debian:~/DCD$ DC=gdc make
git describe --tags > bin/githash.txt
mkdir -p bin
dmd common/src/dcd/common/socket.d common/src/dcd/common/messages.d common/src/dcd/common/dcd_version.d common/src/dcd/common/constants2.d common/src/dcd/common/constants.d src/dcd/server/server.d src/dcd/server/main.d src/dcd/server/autocomplete/util.d src/dcd/server/autocomplete/symbols.d src/dcd/server/autocomplete/package.d src/dcd/server/autocomplete/localuse.d src/dcd/server/autocomplete/doc.d src/dcd/server/autocomplete/complete.d dsymbol/src/dsymbol/utils.d dsymbol/src/dsymbol/ufcs.d dsymbol/src/dsymbol/type_lookup.d dsymbol/src/dsymbol/tests.d dsymbol/src/dsymbol/symbol.d dsymbol/src/dsymbol/string_interning.d dsymbol/src/dsymbol/semantic.d dsymbol/src/dsymbol/scope_.d dsymbol/src/dsymbol/modulecache.d dsymbol/src/dsymbol/import_.d dsymbol/src/dsymbol/deferred.d dsymbol/src/dsymbol/conversion/third.d dsymbol/src/dsymbol/conversion/second.d dsymbol/src/dsymbol/conversion/package.d dsymbol/src/dsymbol/conversion/first.d dsymbol/src/dsymbol/cache_entry.d dsymbol/src/dsymbol/builtin/symbols.d dsymbol/src/dsymbol/builtin/names.d libdparse/src/std/experimental/lexer.d libdparse/src/dparse/trivia.d libdparse/src/dparse/strings.d libdparse/src/dparse/stack_buffer.d libdparse/src/dparse/rollback_allocator.d libdparse/src/dparse/parser.d libdparse/src/dparse/lexer.d libdparse/src/dparse/formatter.d libdparse/src/dparse/entities.d libdparse/src/dparse/astprinter.d libdparse/src/dparse/ast.d containers/src/containers/unrolledlist.d containers/src/containers/ttree.d containers/src/containers/treemap.d containers/src/containers/slist.d containers/src/containers/simdset.d containers/src/containers/package.d containers/src/containers/openhashset.d containers/src/containers/internal/storage_type.d containers/src/containers/internal/node.d containers/src/containers/internal/mixins.d containers/src/containers/internal/hash.d containers/src/containers/internal/element_type.d containers/src/containers/internal/backwards.d containers/src/containers/immutablehashset.d containers/src/containers/hashset.d containers/src/containers/hashmap.d containers/src/containers/dynamicarray.d containers/src/containers/cyclicbuffer.d msgpack-d/src/msgpack/value.d msgpack-d/src/msgpack/unpacker.d msgpack-d/src/msgpack/streaming_unpacker.d msgpack-d/src/msgpack/register.d msgpack-d/src/msgpack/packer.d msgpack-d/src/msgpack/package.d msgpack-d/src/msgpack/exception.d msgpack-d/src/msgpack/common.d msgpack-d/src/msgpack/buffer.d msgpack-d/src/msgpack/attribute.d -Icontainers/src -Imsgpack-d/src -Ilibdparse/src -Idsymbol/src -Jbin -wi -O -release -inline -ofbin/dcd-server
/bin/bash: line 1: dmd: command not found
make: *** [makefile:119: dmdserver] Error 127
user@debian:~/DCD$ DC=ldc2 make
git describe --tags > bin/githash.txt
mkdir -p bin
dmd common/src/dcd/common/socket.d common/src/dcd/common/messages.d common/src/dcd/common/dcd_version.d common/src/dcd/common/constants2.d common/src/dcd/common/constants.d src/dcd/server/server.d src/dcd/server/main.d src/dcd/server/autocomplete/util.d src/dcd/server/autocomplete/symbols.d src/dcd/server/autocomplete/package.d src/dcd/server/autocomplete/localuse.d src/dcd/server/autocomplete/doc.d src/dcd/server/autocomplete/complete.d dsymbol/src/dsymbol/utils.d dsymbol/src/dsymbol/ufcs.d dsymbol/src/dsymbol/type_lookup.d dsymbol/src/dsymbol/tests.d dsymbol/src/dsymbol/symbol.d dsymbol/src/dsymbol/string_interning.d dsymbol/src/dsymbol/semantic.d dsymbol/src/dsymbol/scope_.d dsymbol/src/dsymbol/modulecache.d dsymbol/src/dsymbol/import_.d dsymbol/src/dsymbol/deferred.d dsymbol/src/dsymbol/conversion/third.d dsymbol/src/dsymbol/conversion/second.d dsymbol/src/dsymbol/conversion/package.d dsymbol/src/dsymbol/conversion/first.d dsymbol/src/dsymbol/cache_entry.d dsymbol/src/dsymbol/builtin/symbols.d dsymbol/src/dsymbol/builtin/names.d libdparse/src/std/experimental/lexer.d libdparse/src/dparse/trivia.d libdparse/src/dparse/strings.d libdparse/src/dparse/stack_buffer.d libdparse/src/dparse/rollback_allocator.d libdparse/src/dparse/parser.d libdparse/src/dparse/lexer.d libdparse/src/dparse/formatter.d libdparse/src/dparse/entities.d libdparse/src/dparse/astprinter.d libdparse/src/dparse/ast.d containers/src/containers/unrolledlist.d containers/src/containers/ttree.d containers/src/containers/treemap.d containers/src/containers/slist.d containers/src/containers/simdset.d containers/src/containers/package.d containers/src/containers/openhashset.d containers/src/containers/internal/storage_type.d containers/src/containers/internal/node.d containers/src/containers/internal/mixins.d containers/src/containers/internal/hash.d containers/src/containers/internal/element_type.d containers/src/containers/internal/backwards.d containers/src/containers/immutablehashset.d containers/src/containers/hashset.d containers/src/containers/hashmap.d containers/src/containers/dynamicarray.d containers/src/containers/cyclicbuffer.d msgpack-d/src/msgpack/value.d msgpack-d/src/msgpack/unpacker.d msgpack-d/src/msgpack/streaming_unpacker.d msgpack-d/src/msgpack/register.d msgpack-d/src/msgpack/packer.d msgpack-d/src/msgpack/package.d msgpack-d/src/msgpack/exception.d msgpack-d/src/msgpack/common.d msgpack-d/src/msgpack/buffer.d msgpack-d/src/msgpack/attribute.d -Icontainers/src -Imsgpack-d/src -Ilibdparse/src -Idsymbol/src -Jbin -wi -O -release -inline -ofbin/dcd-server
/bin/bash: line 1: dmd: command not found
make: *** [makefile:119: dmdserver] Error 127
user@debian:~/DCD$ 
baryluk commented 9 months ago

dub does not work either

user@debian:~/DCD$ env | grep ^DC
user@debian:~/DCD$ dub build
Fetching msgpack-d 1.0.4 (getting selected version)...
Fetching libdparse 0.23.0 (getting selected version)...
Fetching emsi_containers 0.9.0 (getting selected version)...
Warning: License in subpackage dcd:dsymbol is different than it's parent package, this is discouraged.
Invalid variable: DC
user@debian:~/DCD$ dub --version
DUB version 1.27.0-3, built on Aug 13 2022
WebFreak001 commented 8 months ago

try updating DUB, there was an issue in there a few versions ago that fixed this