Repository: lucy-charmonizer
Updated Branches:
  refs/heads/master c76e64621 -> 78e998499


Don't handle static library versions

Static libraries don't need versioning.


Project: http://git-wip-us.apache.org/repos/asf/lucy-charmonizer/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucy-charmonizer/commit/ac5c8eed
Tree: http://git-wip-us.apache.org/repos/asf/lucy-charmonizer/tree/ac5c8eed
Diff: http://git-wip-us.apache.org/repos/asf/lucy-charmonizer/diff/ac5c8eed

Branch: refs/heads/master
Commit: ac5c8eedc2a2b3b5f2363df73181c8423671c720
Parents: c76e646
Author: Nick Wellnhofer <[email protected]>
Authored: Mon May 16 18:15:26 2016 +0200
Committer: Nick Wellnhofer <[email protected]>
Committed: Mon May 16 18:15:26 2016 +0200

----------------------------------------------------------------------
 src/Charmonizer/Core/Library.c | 57 ++++++++++++++++++++-----------------
 src/Charmonizer/Core/Library.h | 10 +++----
 src/Charmonizer/Core/Make.c    | 27 ------------------
 3 files changed, 35 insertions(+), 59 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucy-charmonizer/blob/ac5c8eed/src/Charmonizer/Core/Library.c
----------------------------------------------------------------------
diff --git a/src/Charmonizer/Core/Library.c b/src/Charmonizer/Core/Library.c
index 34346d9..3b1225e 100644
--- a/src/Charmonizer/Core/Library.c
+++ b/src/Charmonizer/Core/Library.c
@@ -27,7 +27,6 @@ struct chaz_Lib {
     char *major_version;
     int   is_static;
     int   is_shared;
-    chaz_LibType lib_type;
 };
 
 static char*
@@ -37,24 +36,25 @@ static const char*
 S_get_prefix(void);
 
 chaz_Lib*
-chaz_Lib_new(const char *name, chaz_LibType lib_type, const char *version,
-             const char *major_version) {
+chaz_Lib_new_shared(const char *name, const char *version,
+                    const char *major_version) {
     chaz_Lib *lib = (chaz_Lib*)malloc(sizeof(chaz_Lib));
     lib->name          = chaz_Util_strdup(name);
     lib->version       = chaz_Util_strdup(version);
     lib->major_version = chaz_Util_strdup(major_version);
-    lib->lib_type      = lib_type;
-    if (lib_type == chaz_Lib_SHARED) {
-        lib->is_shared = 1;
-        lib->is_static = 0;
-    }
-    else if (lib_type == chaz_Lib_STATIC) {
-        lib->is_shared = 0;
-        lib->is_static = 1;
-    }
-    else {
-        chaz_Util_die("Invalid value for lib_type: %d", lib_type);
-    }
+    lib->is_shared = 1;
+    lib->is_static = 0;
+    return lib;
+}
+
+chaz_Lib*
+chaz_Lib_new_static(const char *name) {
+    chaz_Lib *lib = (chaz_Lib*)malloc(sizeof(chaz_Lib));
+    lib->name          = chaz_Util_strdup(name);
+    lib->version       = NULL;
+    lib->major_version = NULL;
+    lib->is_shared = 0;
+    lib->is_static = 1;
     return lib;
 }
 
@@ -93,24 +93,29 @@ chaz_Lib_is_static (chaz_Lib *lib) {
 
 char*
 chaz_Lib_filename(chaz_Lib *lib) {
-    const char *ext = lib->is_shared
-                      ? chaz_OS_shared_lib_ext()
-                      : chaz_OS_static_lib_ext();
-
-    if ((strcmp(ext, ".dll") == 0) || strcmp(ext, ".lib") == 0) {
-        return S_build_filename(lib, lib->major_version, ext);
+    if (lib->is_static) {
+        return chaz_Lib_no_version_filename(lib);
     }
     else {
-        return S_build_filename(lib, lib->version, ext);
+        const char *ext = chaz_OS_shared_lib_ext();
+        if (strcmp(ext, ".dll") == 0) {
+            return S_build_filename(lib, lib->major_version, ext);
+        }
+        else {
+            return S_build_filename(lib, lib->version, ext);
+        }
     }
 }
 
 char*
 chaz_Lib_major_version_filename(chaz_Lib *lib) {
-    const char *ext = lib->is_shared
-                      ? chaz_OS_shared_lib_ext()
-                      : chaz_OS_static_lib_ext();
-    return S_build_filename(lib, lib->major_version, ext);
+    if (lib->is_static) {
+        return chaz_Lib_no_version_filename(lib);
+    }
+    else {
+        const char *ext = chaz_OS_shared_lib_ext();
+        return S_build_filename(lib, lib->major_version, ext);
+    }
 }
 
 char*

http://git-wip-us.apache.org/repos/asf/lucy-charmonizer/blob/ac5c8eed/src/Charmonizer/Core/Library.h
----------------------------------------------------------------------
diff --git a/src/Charmonizer/Core/Library.h b/src/Charmonizer/Core/Library.h
index 6280fc1..80fff83 100644
--- a/src/Charmonizer/Core/Library.h
+++ b/src/Charmonizer/Core/Library.h
@@ -26,14 +26,12 @@ extern "C" {
 
 typedef struct chaz_Lib chaz_Lib;
 
-typedef enum {
-    chaz_Lib_SHARED = 1,
-    chaz_Lib_STATIC = 2
-} chaz_LibType;
+chaz_Lib*
+chaz_Lib_new_shared(const char *name, const char *version,
+                    const char *major_version);
 
 chaz_Lib*
-chaz_Lib_new(const char *name, chaz_LibType type, const char *version,
-             const char *major_version);
+chaz_Lib_new_static(const char *name);
 
 void
 chaz_Lib_destroy(chaz_Lib *flags);

http://git-wip-us.apache.org/repos/asf/lucy-charmonizer/blob/ac5c8eed/src/Charmonizer/Core/Make.c
----------------------------------------------------------------------
diff --git a/src/Charmonizer/Core/Make.c b/src/Charmonizer/Core/Make.c
index c9ef7bb..75732b0 100644
--- a/src/Charmonizer/Core/Make.c
+++ b/src/Charmonizer/Core/Make.c
@@ -428,33 +428,6 @@ chaz_MakeFile_add_static_lib(chaz_MakeFile *makefile, 
chaz_Lib *lib,
     }
     chaz_MakeRule_add_rm_command(makefile->clean, filename);
 
-    /* Add symlinks. */
-    if (strcmp(shlib_ext, ".dll") != 0) {
-        char *major_v_name = chaz_Lib_major_version_filename(lib);
-        char *no_v_name    = chaz_Lib_no_version_filename(lib);
-
-        command = chaz_Util_join(" ", "ln -sf", filename, major_v_name, NULL);
-        chaz_MakeRule_add_command(rule, command);
-        free(command);
-
-        if (strcmp(shlib_ext, ".dylib") == 0) {
-            command = chaz_Util_join(" ", "ln -sf", filename, no_v_name,
-                                     NULL);
-        }
-        else {
-            command = chaz_Util_join(" ", "ln -sf", major_v_name, no_v_name,
-                                     NULL);
-        }
-        chaz_MakeRule_add_command(rule, command);
-        free(command);
-
-        chaz_MakeRule_add_rm_command(makefile->clean, major_v_name);
-        chaz_MakeRule_add_rm_command(makefile->clean, no_v_name);
-
-        free(major_v_name);
-        free(no_v_name);
-    }
-
     free(filename);
     return rule;
 }

Reply via email to