Permalink
Browse files

Unterstützung für CMake Pfadvariablen in CUSTOM_VAPIS

Hi Jakob,

ich experiementier seit ein paar Tagen mit Vala und hab als Basis deine
ausgezeichneten CMake Macros benutzt.

Dabei stieß ich auf den Fall, dass ich Custom Vapis die in einem Projektteil
erzeugt werden, schon zur Buildtime in einem anderen Verzeichnis benutzen
möchte.

Das führt bei relativen Pfaden leicht zu etwas in dieser Art

../../../build/libs/mylib/mylib.vapi

Mein initialer Versuch den Anfang des Pfades mittels CMAKE_BINARY_DIR
anzugeben funktionierte leider nicht  ganz so wie ich mir das gedacht hatte.
Daher hab ich mir die Macro Datei angesehen und bin zum diesem Patch gelangt.

D.h. wenn die angeführte VAPI Datei eines der beiden "Root" Verzeichnisse
enthält, wird die Datei ohne weitere Änderung angefügt, sonst wie gehabt mit
vorgestelltem CMAKE_CURRENT_SOURCE_DIR

Funktioniert nun bei mir in beiden Varianten, möglicherweise lässt sich das
aber auch eleganter lösen.

Ciao,
Kevin

From 9866e5d17f0b91e99ca6cbf295fde78168512dc5 Mon Sep 17 00:00:00 2001
From: Kevin Krammer <kevin.krammer@gmx.at>
Date: Sun, 15 Aug 2010 16:10:19 +0200
Subject: [PATCH] When building the custom VAPIs parameter, check if the given VAPI files already include root source or binary directories.
 If they do just use them as-is, only prepend current source dir if the don't.
  • Loading branch information...
1 parent 015fa8d commit 80321a563175d335ff0c143553b739dcb1a37fc6 Kevin Krammer committed with Aug 15, 2010
Showing with 7 additions and 3 deletions.
  1. +7 −3 vala/ValaPrecompile.cmake
View
@@ -127,9 +127,13 @@ macro(vala_precompile output)
set(custom_vapi_arguments "")
if(ARGS_CUSTOM_VAPIS)
- foreach(vapi ${ARGS_CUSTOM_VAPIS})
- list(APPEND custom_vapi_arguments ${CMAKE_CURRENT_SOURCE_DIR}/${vapi})
- endforeach(vapi ${ARGS_CUSTOM_VAPIS})
+ foreach(vapi ${ARGS_CUSTOM_VAPIS})
+ if(${vapi} MATCHES ${CMAKE_SOURCE_DIR} OR ${vapi} MATCHES ${CMAKE_BINARY_DIR})
+ list(APPEND custom_vapi_arguments ${vapi})
+ else (${vapi} MATCHES ${CMAKE_SOURCE_DIR} OR ${vapi} MATCHES ${CMAKE_BINARY_DIR})
+ list(APPEND custom_vapi_arguments ${CMAKE_CURRENT_SOURCE_DIR}/${vapi})
+ endif(${vapi} MATCHES ${CMAKE_SOURCE_DIR} OR ${vapi} MATCHES ${CMAKE_BINARY_DIR})
+ endforeach(vapi ${ARGS_CUSTOM_VAPIS})
endif(ARGS_CUSTOM_VAPIS)
set(vapi_arguments "")

0 comments on commit 80321a5

Please sign in to comment.