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( libevolution_files = files(
'e-cal-data-model.c', 'e-cal-data-model.c',
'e-cal-data-model-subscriber.c' 'e-cal-data-model-subscriber.c'
+2
View File
@@ -1 +1,3 @@
contrib_incs = []
subdir('evolution') subdir('evolution')
+1 -2
View File
@@ -17,8 +17,7 @@
* with this program. If not, see <http://www.gnu.org/licenses/>. * with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
#include <config.h> #include "config.h"
#include <gtk/gtk.h>
#include "gcal-application.h" #include "gcal-application.h"
#include <glib/gi18n.h> #include <glib/gi18n.h>
+35 -11
View File
@@ -2,7 +2,7 @@ src_inc = include_directories('.')
enum_headers = files('gcal-utils.h') enum_headers = files('gcal-utils.h')
calendar_deps = [ libgcal_deps = [
gsettings_desktop_schemas_dep, gsettings_desktop_schemas_dep,
libedataserverui_dep, libedataserverui_dep,
libedataserver_dep, libedataserver_dep,
@@ -45,7 +45,6 @@ sources = files(
'gcal-utils.c', 'gcal-utils.c',
'gcal-view.c', 'gcal-view.c',
'gcal-window.c', 'gcal-window.c',
'main.c'
) )
gnome.mkenums( gnome.mkenums(
@@ -90,6 +89,11 @@ debug_conf = configuration_data()
debug_conf.set('BUGREPORT_URL', package_bugreport) debug_conf.set('BUGREPORT_URL', package_bugreport)
debug_conf.set10('ENABLE_TRACING', enable_tracing) debug_conf.set10('ENABLE_TRACING', enable_tracing)
#########
# Debug #
#########
debug = 'gcal-debug.h' debug = 'gcal-debug.h'
sources += configure_file( sources += configure_file(
@@ -98,28 +102,48 @@ sources += configure_file(
configuration: debug_conf configuration: debug_conf
) )
#######################
# Include directories #
#######################
incs = [ incs = [
top_inc, top_inc,
include_directories('views') include_directories('views')
] ]
executable( incs += contrib_incs
meson.project_name(),
sources,
include_directories: incs, ###################
dependencies: calendar_deps, # Private library #
install: true, ###################
install_dir: calendar_bindir
)
libgcal = shared_library( libgcal = shared_library(
'gcal', 'gcal',
sources: sources, sources: sources,
include_directories: incs, include_directories: incs,
dependencies: calendar_deps dependencies: libgcal_deps
) )
libgcal_dep = declare_dependency( libgcal_dep = declare_dependency(
link_with: libgcal, link_with: libgcal,
include_directories: src_inc 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
)