diff --git a/.gitignore b/.gitignore index 37f8b93..3ac2577 100644 --- a/.gitignore +++ b/.gitignore @@ -1,14 +1,19 @@ # Windows binaries *.exe *.obj +*.lib +*.dll # *nix binaries dcd-client dcd-server *.o +*.a +*.so # Perf reports perf.data +perf.data.old # Valgrind reports callgrind.* @@ -20,3 +25,7 @@ githash.txt tests/tc*/actual*.txt stderr.txt stdout.txt + +# Dub files +.dub +dub.selections.json diff --git a/README.md b/README.md index c38d1e9..32af8ac 100644 --- a/README.md +++ b/README.md @@ -41,14 +41,24 @@ the issue.) * That one feature that you *REALLY* needed # Setup +### General 1. Install a recent D compiler. DCD is tested with DMD 2.068.2, DMD 2.069.0-rc2, and LDC 0.16 (Do not use DMD 2.068.1) -1. Run ```git submodule update --init --recursive``` after cloning this repository to grab the various dependencies. -1. Run ```make``` to build the client and server. (Or run build.bat on Windows). ```make ldc``` and ```make gdc``` will use the LDC or GDC compilers. The resulting executable will be much faster. +1. Follow the directions listed below for Homebrew, Git + Make, or Dub, depending on how you would like to build DCD. 1. Configure your text editor to call the dcd-client program. See the [wiki](https://github.com/Hackerpilot/DCD/wiki/IDEs-and-Editors-with-DCD-support) for information on configuring your specific editor. 1. Start the dcd-server program before editing code. (Unless, of course, your editor's plugin handles this for you) +### Git + Make +1. Install a recent D compiler. DCD is tested with DMD 2.068.2, DMD 2.069.0-rc2, and LDC 0.16 (Do not use DMD 2.068.1) +1. Run ```git submodule update --init --recursive``` after cloning this repository to grab the various dependencies. +1. Run ```make``` to build the client and server. (Or run build.bat on Windows). ```make ldc``` and ```make gdc``` will use the LDC or GDC compilers. The resulting executable will be much faster. + ### OS X w/ Homebrew -```brew install dcd``` followed by points 4 & 5 above. +1. ```brew install dcd``` + +### Dub +1. ```dub build --build=release --config=client``` +1. ```dub build --build=release --config=server``` + # Client Because DCD is designed to be used from a text editor, this section is written diff --git a/containers b/containers index 8b37639..c9853bb 160000 --- a/containers +++ b/containers @@ -1 +1 @@ -Subproject commit 8b376391b5f7e1aed8cbdfb907d1a4ac868566db +Subproject commit c9853bbca9f0840df32a46edebbb9b17c8216cd4 diff --git a/dub.json b/dub.json new file mode 100644 index 0000000..3d6cf52 --- /dev/null +++ b/dub.json @@ -0,0 +1,43 @@ +{ + "name": "dcd", + "description": "The D Completion Daemon is an auto-complete program for the D programming language", + "copyright": "Copyright © 2015, Brian Schott", + "authors": [ + "Brian Schott" + ], + "license": "GPL-3.0", + "dependencies": { + "dsymbol": "~>0.1.0", + "libdparse": "~>0.3.0", + "msgpack-d": "~>1.0.0-beta.2" + }, + "versions": ["built_with_dub"], + "configurations": [ + { + "name": "library", + "targetType": "library", + "excludedSourceFiles": [ + "src/client/*", + "src/server/server.d" + ] + }, + { + "name": "client", + "targetType": "executable", + "targetName": "dcd-client", + "mainSourceFile": "src/client/client.d", + "excludedSourceFiles": [ + "src/server/*" + ] + }, + { + "name": "server", + "targetType": "executable", + "targetName": "dcd-server", + "mainSourceFile": "src/server/server.d", + "excludedSourceFiles": [ + "src/client/*" + ] + } + ] +} diff --git a/libdparse b/libdparse index d928584..4d87656 160000 --- a/libdparse +++ b/libdparse @@ -1 +1 @@ -Subproject commit d928584e9e05bb003d1e378aa921899010b0a670 +Subproject commit 4d876562b4862a98bf1b6b6bf4fd07af96506a54 diff --git a/src/client/client.d b/src/client/client.d index 4a7fe6a..b3d47be 100644 --- a/src/client/client.d +++ b/src/client/client.d @@ -70,6 +70,8 @@ int main(string[] args) { version (Windows) writeln(DCD_VERSION); + else version(built_with_dub) + writeln(DCD_VERSION); else write(DCD_VERSION, " ", GIT_HASH); return 0; diff --git a/src/common/dcd_version.d b/src/common/dcd_version.d index e90f5d7..16e051c 100644 --- a/src/common/dcd_version.d +++ b/src/common/dcd_version.d @@ -21,9 +21,10 @@ module common.dcd_version; /** * Human-readable version number */ -enum DCD_VERSION = "v0.7.3"; +enum DCD_VERSION = "v0.7.4"; version (Windows) {} +else version (built_with_dub) {} else { /** diff --git a/src/server/server.d b/src/server/server.d index f569e09..62e89be 100644 --- a/src/server/server.d +++ b/src/server/server.d @@ -82,6 +82,8 @@ int main(string[] args) { version (Windows) writeln(DCD_VERSION); + else version (built_with_dub) + writeln(DCD_VERSION); else write(DCD_VERSION, " ", GIT_HASH); return 0;