mirror of
https://github.com/Gnucash/gnucash.git
synced 2025-02-25 18:55:30 -06:00
Handle cases where LIBDIR is not "lib"
For example, Fedora installs to lib64, Debian to lib/<arch-tuple>
This commit is contained in:
@@ -88,8 +88,10 @@ SET(TEST_MYSQL_URL "" CACHE STRING "MySQL database URL for testing")
|
||||
SET(TEST_PGSQL_URL "" CACHE STRING "PgSQL database URL for testing")
|
||||
|
||||
SET(DATADIR_BUILD ${CMAKE_BINARY_DIR}/${DATADIRNAME})
|
||||
SET(LIBDIR_BUILD ${CMAKE_BINARY_DIR}/lib)
|
||||
STRING(REPLACE ${CMAKE_INSTALL_PREFIX} "" LIBDIR_BUILD ${LIBDIR})
|
||||
SET(LIBDIR_BUILD ${CMAKE_BINARY_DIR}/${LIBDIR_BUILD})
|
||||
SET(SYSCONFDIR_BUILD ${CMAKE_BINARY_DIR}/etc)
|
||||
SET(LIBEXECDIR_BUILD ${CMAKE_BINARY_DIR}/libexec)
|
||||
SET(BINDIR_BUILD ${CMAKE_BINARY_DIR}/bin)
|
||||
|
||||
SET(SHELL_FROM_ENV $ENV{SHELL})
|
||||
@@ -506,13 +508,13 @@ SET(BUILD_SHARED_LIBS ON)
|
||||
# (after the targets have been read in).
|
||||
|
||||
|
||||
SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib/gnucash)
|
||||
SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${LIBDIR_BUILD}/gnucash)
|
||||
IF (XCODE_VERSION)
|
||||
# FIXME: These settings break the ability to manipulate different configurations (Debug,
|
||||
# FIXME: Release, etc.) in Xcode. We'll need to change the module loading C code if
|
||||
# we want to support multi config.
|
||||
SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR}/lib/gnucash)
|
||||
SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/lib/gnucash)
|
||||
SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG ${LIBDIR_BUILD}/gnucash)
|
||||
SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE ${LIBDIR_BUILD}/gnucash)
|
||||
ENDIF()
|
||||
|
||||
# For binarines
|
||||
@@ -808,10 +810,10 @@ add_custom_target(uninstall
|
||||
|
||||
SET_TARGET_PROPERTIES(gnc-core-utils gnc-module gnc-backend-sql gnc-backend-xml-utils
|
||||
gnc-gnome PROPERTIES
|
||||
LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib
|
||||
LIBRARY_OUTPUT_DIRECTORY ${LIBDIR_BUILD}
|
||||
IF (XCODE_VERSION)
|
||||
LIBRARY_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR}/lib
|
||||
LIBRARY_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/lib
|
||||
LIBRARY_OUTPUT_DIRECTORY_DEBUG ${LIBDIR_BUILD}
|
||||
LIBRARY_OUTPUT_DIRECTORY_RELEASE ${LIBDIR_BUILD}
|
||||
ENDIF()
|
||||
|
||||
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
|
||||
|
||||
FUNCTION(GET_GUILE_ENV)
|
||||
SET(_GNC_MODULE_PATH ${CMAKE_BINARY_DIR}/lib:${CMAKE_BINARY_DIR}/lib/gnucash)
|
||||
SET(_GNC_MODULE_PATH ${LIBDIR_BUILD}:${LIBDIR_BUILD}/gnucash)
|
||||
IF (WIN32)
|
||||
SET(_GNC_MODULE_PATH ${CMAKE_BINARY_DIR}/bin)
|
||||
ENDIF()
|
||||
@@ -25,7 +25,7 @@ FUNCTION(GET_GUILE_ENV)
|
||||
set(fpath "${fpath}${dir}:")
|
||||
endforeach(dir)
|
||||
LIST(APPEND env "PATH=${fpath}")
|
||||
set(compiled_path "${CMAKE_BINARY_DIR}/lib/gnucash/scm/ccache/2.0")
|
||||
set(compiled_path "${LIBDIR_BUILD}/gnucash/scm/ccache/2.0")
|
||||
string(REGEX REPLACE "^([A-Za-z]):" "/\\1" compiled_path ${compiled_path})
|
||||
LIST(APPEND env GUILE_LOAD_COMPILED_PATH=${compiled_path})
|
||||
ENDIF(MINGW64)
|
||||
@@ -33,7 +33,7 @@ FUNCTION(GET_GUILE_ENV)
|
||||
LIST(APPEND env "GUILE=${GUILE_EXECUTABLE}")
|
||||
|
||||
IF (NOT WIN32)
|
||||
LIST(APPEND env "GUILE_LOAD_COMPILED_PATH=${CMAKE_BINARY_DIR}/lib/gnucash/scm/ccache/2.0")
|
||||
LIST(APPEND env "GUILE_LOAD_COMPILED_PATH=${LIBDIR_BUILD}/gnucash/scm/ccache/2.0")
|
||||
ENDIF()
|
||||
SET(guile_load_paths "")
|
||||
LIST(APPEND guile_load_paths ${CMAKE_CURRENT_SOURCE_DIR}/mod-foo)
|
||||
|
||||
@@ -33,6 +33,7 @@
|
||||
#ifndef __BINRELOC_C__
|
||||
#define __BINRELOC_C__
|
||||
#include <config.h>
|
||||
#include "gncla-dir.h"
|
||||
|
||||
#include <platform.h>
|
||||
#if PLATFORM(WINDOWS)
|
||||
@@ -548,7 +549,7 @@ gnc_gbr_find_lib_dir (const gchar *default_lib_dir)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
dir = g_build_filename (prefix, "lib", NULL);
|
||||
dir = g_build_filename (prefix, LIBDIR, NULL);
|
||||
g_free (prefix);
|
||||
return dir;
|
||||
}
|
||||
|
||||
@@ -28,6 +28,7 @@ extern "C"
|
||||
#include <config.h>
|
||||
#include "qof.h"
|
||||
#include <gnc-path.h>
|
||||
#include "gncla-dir.h"
|
||||
}
|
||||
|
||||
#include <string>
|
||||
@@ -105,11 +106,11 @@ static char* get_default_module_dir(const char* rel_path)
|
||||
{
|
||||
#ifdef CMAKE_BUILD
|
||||
#ifdef WIN32
|
||||
#define LIBDIR "bin"
|
||||
#define MODULE_LIBDIR "bin"
|
||||
#else
|
||||
#define LIBDIR "lib/gnucash"
|
||||
#define MODULE_LIBDIR LIBDIR "/gnucash"
|
||||
#endif
|
||||
pkglibdir = g_build_path (G_DIR_SEPARATOR_S, builddir, LIBDIR, NULL);
|
||||
pkglibdir = g_build_path (G_DIR_SEPARATOR_S, builddir, MODULE_LIBDIR, NULL);
|
||||
#else
|
||||
if (rel_path)
|
||||
pkglibdir = g_build_path (G_DIR_SEPARATOR_S, builddir,
|
||||
|
||||
@@ -22,7 +22,7 @@ FUNCTION(RUN_TEST_WITH_GUILE _TARGET _SOURCE_FILE)
|
||||
GET_GUILE_ENV()
|
||||
SET(CMAKE_COMMAND_TMP "")
|
||||
IF (${CMAKE_VERSION} VERSION_GREATER 3.1)
|
||||
SET(CMAKE_COMMAND_TMP ${CMAKE_COMMAND} -E env "${GUILE_ENV};GNC_MODULE_PATH=${CMAKE_BINARY_DIR}/lib/gnucash/test")
|
||||
SET(CMAKE_COMMAND_TMP ${CMAKE_COMMAND} -E env "${GUILE_ENV};GNC_MODULE_PATH=$${LIBDIR_BUILD}/gnucash/test")
|
||||
ENDIF()
|
||||
ADD_TEST(NAME ${_TARGET}
|
||||
COMMAND ${CMAKE_COMMAND_TMP}
|
||||
@@ -32,7 +32,7 @@ FUNCTION(RUN_TEST_WITH_GUILE _TARGET _SOURCE_FILE)
|
||||
SET_TESTS_PROPERTIES(${_TARGET} PROPERTIES ENVIRONMENT "${GUILE_ENV};${ARGN}")
|
||||
ENDFUNCTION()
|
||||
|
||||
GNC_ADD_TEST_WITH_GUILE(test-load-c test-load-c.c GNC_MODULE_TEST_INCLUDE_DIRS GNC_MODULE_TEST_LIBS "GNC_MODULE_PATH=${CMAKE_BINARY_DIR}/lib/gnucash/test")
|
||||
GNC_ADD_TEST_WITH_GUILE(test-load-c test-load-c.c GNC_MODULE_TEST_INCLUDE_DIRS GNC_MODULE_TEST_LIBS "GNC_MODULE_PATH=${LIBDIR_BUILD}/gnucash/test")
|
||||
|
||||
GNC_ADD_TEST_WITH_GUILE(test-modsysver test-modsysver.c
|
||||
GNC_MODULE_TEST_INCLUDE_DIRS GNC_MODULE_TEST_LIBS
|
||||
@@ -42,10 +42,10 @@ GNC_ADD_TEST_WITH_GUILE(test-incompatdep test-incompatdep.c
|
||||
)
|
||||
GNC_ADD_TEST_WITH_GUILE(test-agedver test-agedver.c
|
||||
GNC_MODULE_TEST_INCLUDE_DIRS GNC_MODULE_TEST_LIBS
|
||||
"GNC_MODULE_PATH=${CMAKE_BINARY_DIR}/lib/gnucash/test"
|
||||
"GNC_MODULE_PATH=${LIBDIR_BUILD}/gnucash/test"
|
||||
)
|
||||
|
||||
SET(_LIBDIR ${CMAKE_BINARY_DIR}/lib)
|
||||
SET(_LIBDIR ${LIBDIR_BUILD})
|
||||
IF (WIN32)
|
||||
SET(_LIBDIR ${CMAKE_BINARY_DIR}/bin)
|
||||
ENDIF()
|
||||
@@ -78,7 +78,7 @@ IF(NOT WIN32)
|
||||
# This little dance is needed because gnc_module_init will assert if
|
||||
# it finds libgncmod_futuremod.so outside of a test that expects it.
|
||||
GET_GUILE_ENV()
|
||||
SET(_GNC_MODULE_PATH "${CMAKE_BINARY_DIR}/lib:${CMAKE_BINARY_DIR}/lib/gnucash:${CMAKE_BINARY_DIR}/lib/gnucash/test")
|
||||
SET(_GNC_MODULE_PATH "${LIBDIR_BUILD}:${LIBDIR_BUILD}/gnucash:${LIBDIR_BUILD}/gnucash/test")
|
||||
FOREACH(test_file ${test_gnc_module_SCHEME})
|
||||
GET_FILENAME_COMPONENT(basename ${test_file} NAME_WE)
|
||||
SET_TESTS_PROPERTIES(${basename} PROPERTIES ENVIRONMENT "${GUILE_ENV};GNC_MODULE_PATH=${_GNC_MODULE_PATH}")
|
||||
|
||||
@@ -14,8 +14,8 @@ ADD_LIBRARY(gncmod_incompatdep EXCLUDE_FROM_ALL incompatdep.c)
|
||||
TARGET_LINK_LIBRARIES(gncmod_incompatdep gnc-module ${GLIB2_LDFLAGS})
|
||||
|
||||
SET_TARGET_PROPERTIES(gncmod_agedver gncmod_futuremodsys gncmod_incompatdep PROPERTIES
|
||||
LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib/gnucash/test
|
||||
ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib/gnucash/test
|
||||
LIBRARY_OUTPUT_DIRECTORY ${LIBDIR_BUILD}/gnucash/test
|
||||
ARCHIVE_OUTPUT_DIRECTORY ${LIBDIR_BUILD}/gnucash/test
|
||||
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
|
||||
|
||||
SET_DIST_LIST(misc_mods_DIST CMakeLists.txt Makefile.am agedver.c futuremodsys.c incompatdep.c)
|
||||
|
||||
@@ -22,8 +22,8 @@ TARGET_INCLUDE_DIRECTORIES(gncmodbar PRIVATE
|
||||
)
|
||||
|
||||
SET_TARGET_PROPERTIES(bar gncmodbar PROPERTIES
|
||||
LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib/gnucash/test
|
||||
ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib/gnucash/test
|
||||
LIBRARY_OUTPUT_DIRECTORY ${LIBDIR_BUILD}/gnucash/test
|
||||
ARCHIVE_OUTPUT_DIRECTORY ${LIBDIR_BUILD}/gnucash/test
|
||||
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
|
||||
|
||||
SET_DIST_LIST(mod_bar_DIST CMakeLists.txt Makefile.am bar.c gnucash/bar.scm bar.h bar.i gnc-mod-bar.c)
|
||||
|
||||
@@ -35,8 +35,8 @@ GNC_ADD_SCHEME_TARGETS(scm-mod-baz
|
||||
)
|
||||
|
||||
SET_TARGET_PROPERTIES(baz gncmodbaz PROPERTIES
|
||||
LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib/gnucash/test
|
||||
ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib/gnucash/test
|
||||
LIBRARY_OUTPUT_DIRECTORY ${LIBDIR_BUILD}/gnucash/test
|
||||
ARCHIVE_OUTPUT_DIRECTORY ${LIBDIR_BUILD}/gnucash/test
|
||||
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
|
||||
|
||||
SET_DIST_LIST(mod_baz_DIST CMakeLists.txt Makefile.am baz.c gnucash/baz.scm baz.h baz.i gnc-mod-baz.c)
|
||||
|
||||
@@ -29,8 +29,8 @@ GNC_ADD_SCHEME_TARGETS(scm-mod-foo
|
||||
)
|
||||
|
||||
SET_TARGET_PROPERTIES(foo gncmodfoo PROPERTIES
|
||||
LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib/gnucash/test
|
||||
ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib/gnucash/test
|
||||
LIBRARY_OUTPUT_DIRECTORY ${LIBDIR_BUILD}/gnucash/test
|
||||
ARCHIVE_OUTPUT_DIRECTORY ${LIBDIR_BUILD}/gnucash/test
|
||||
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
|
||||
|
||||
SET_DIST_LIST(mod_foo_DIST CMakeLists.txt Makefile.am foo.i gnucash/foo.scm foo.c foo.h gnc-mod-foo.c)
|
||||
|
||||
Reference in New Issue
Block a user