project: don't compile source files twice

We can just link with the private library, and use the
main file to make it an executable. This drops the compile
time by 43% here.
This commit is contained in:
Georges Basile Stavracas Neto
2017-09-07 12:07:22 -03:00
parent 24a2e97df2
commit 647e243bd5
4 changed files with 40 additions and 13 deletions
+2
View File
@@ -1,3 +1,5 @@
contrib_incs += [ include_directories('.') ]
libevolution_files = files(
'e-cal-data-model.c',
'e-cal-data-model-subscriber.c'
+2
View File
@@ -1 +1,3 @@
contrib_incs = []
subdir('evolution')
+1 -2
View File
@@ -17,8 +17,7 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include <config.h>
#include <gtk/gtk.h>
#include "config.h"
#include "gcal-application.h"
#include <glib/gi18n.h>
+35 -11
View File
@@ -2,7 +2,7 @@ src_inc = include_directories('.')
enum_headers = files('gcal-utils.h')
calendar_deps = [
libgcal_deps = [
gsettings_desktop_schemas_dep,
libedataserverui_dep,
libedataserver_dep,
@@ -45,7 +45,6 @@ sources = files(
'gcal-utils.c',
'gcal-view.c',
'gcal-window.c',
'main.c'
)
gnome.mkenums(
@@ -90,6 +89,11 @@ debug_conf = configuration_data()
debug_conf.set('BUGREPORT_URL', package_bugreport)
debug_conf.set10('ENABLE_TRACING', enable_tracing)
#########
# Debug #
#########
debug = 'gcal-debug.h'
sources += configure_file(
@@ -98,28 +102,48 @@ sources += configure_file(
configuration: debug_conf
)
#######################
# Include directories #
#######################
incs = [
top_inc,
include_directories('views')
]
executable(
meson.project_name(),
sources,
include_directories: incs,
dependencies: calendar_deps,
install: true,
install_dir: calendar_bindir
)
incs += contrib_incs
###################
# Private library #
###################
libgcal = shared_library(
'gcal',
sources: sources,
include_directories: incs,
dependencies: calendar_deps
dependencies: libgcal_deps
)
libgcal_dep = declare_dependency(
link_with: libgcal,
include_directories: src_inc
)
##################
# gnome-calendar #
##################
calendar_deps = libgcal_deps
calendar_deps += [ libgcal_dep ]
executable(
meson.project_name(),
files('main.c'),
include_directories: incs,
dependencies: calendar_deps,
install: true,
install_dir: calendar_bindir
)