Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
K
kicad-source-mirror
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Commits
Open sidebar
Elphel
kicad-source-mirror
Commits
33e26b27
Commit
33e26b27
authored
Feb 03, 2014
by
Dick Hollenbeck
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
KIWAY in progress...
parent
2eb99fef
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
131 additions
and
98 deletions
+131
-98
CMakeLists.txt
CMakeLists.txt
+33
-13
config.h.cmake
CMakeModules/config.h.cmake
+6
-1
kiway.cpp
common/kiway.cpp
+4
-2
single_top.cpp
common/single_top.cpp
+31
-29
CMakeLists.txt
eeschema/CMakeLists.txt
+14
-12
eeschema.cpp
eeschema/eeschema.cpp
+9
-9
kiway.h
include/kiway.h
+14
-11
CMakeLists.txt
tools/CMakeLists.txt
+20
-21
kiface_test.cpp
tools/kiface_test.cpp
+0
-0
No files found.
CMakeLists.txt
View file @
33e26b27
...
...
@@ -24,7 +24,7 @@ set( CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/CMakeModules )
#
option
(
USE_KIWAY_DLLS
"Build the major modules as DLLs or DSOs, will soon be the norm."
OFF
)
"Build the major modules as
KIFACE
DLLs or DSOs, will soon be the norm."
OFF
)
# The desire is to migrate designs *away from* case independence, and to create designs which use
# literally (case specific) interpreted component names. But for backwards compatibility,
...
...
@@ -240,6 +240,8 @@ if( USE_WX_GRAPHICS_CONTEXT )
add_definitions
(
-DUSE_WX_GRAPHICS_CONTEXT
)
endif
()
# Allow user to override the default settings for adding images to menu items. By default
# images in menu items are enabled on all platforms except OSX. This can be over ridden by
# defining -DUSE_IMAGES_IN_MENUS=ON/OFF to force the preferred behavior.
...
...
@@ -253,6 +255,25 @@ else()
endif
()
endif
()
# KIFACE_SUFFIX is the file extension used for top level program modules which
# implement the KIFACE interface. A valid suffix starts with a period '.'.
if
(
false
)
# This is the eventual situation near milestone C) of modular-kicad blueprint.
# Until then we use .kiface extension so we don't collide with python DSO.
set
(
KIFACE_SUFFIX
${
CMAKE_SHARED_MODULE_SUFFIX
}
)
else
()
# Temporary situation until we can dovetail the python DSO into the kiface DSO.
set
(
KIFACE_SUFFIX
".kiface"
)
endif
()
# KIFACE_PREFIX is a basename prefix used for top level program modules which
# implement the KIFACE.
set
(
KIFACE_PREFIX
"_"
)
#message( STATUS "KIFACE_SUFFIX:${KIFACE_SUFFIX} KIFACE_PREFIX:${KIFACE_PREFIX}" )
#================================================
# Locations for install targets.
set
(
KICAD_BIN bin
...
...
@@ -313,7 +334,7 @@ add_definitions(-DWX_COMPATIBILITY)
find_package
(
OpenGL QUIET
)
check_find_package_result
(
OPENGL_FOUND
"OpenGL"
)
if
(
KICAD_BUILD_STATIC OR KICAD_BUILD_DYNAMIC
)
if
(
KICAD_BUILD_STATIC OR KICAD_BUILD_DYNAMIC
)
#set(CMAKE_FIND_LIBRARY_SUFFIXES ".a;.so;.dylib;.dll")
...
...
@@ -331,35 +352,34 @@ if ( KICAD_BUILD_STATIC OR KICAD_BUILD_DYNAMIC )
endif
()
add_custom_target
(
lib-dependencies
DEPENDS boost cairo glew libpng pixman pkgconfig
)
DEPENDS boost cairo glew libpng pixman pkgconfig
)
include
(
download_libpng
)
if
(
KICAD_SCRIPTING_WXPYTHON
)
message
(
FATAL_ERROR
"KICAD_BUILD_* and SCRIPTING Not Implemented Yet!"
)
message
(
FATAL_ERROR
"KICAD_BUILD_* and SCRIPTING Not Implemented Yet!"
)
else
()
include
(
download_wxwidgets
)
add_dependencies
(
lib-dependencies libwx
)
endif
(
KICAD_SCRIPTING_WXPYTHON
)
endif
()
include
(
download_pkgconfig
)
set
(
PKG_CONFIG_EXECUTABLE
"
${
PKGCONFIG_ROOT
}
/bin/pkg-config"
)
set
(
PKG_CONFIG_EXECUTABLE
"
${
PKGCONFIG_ROOT
}
/bin/pkg-config"
)
include
(
download_glew
)
set
(
GLEW_GLEW_LIBRARY
"
${
GLEW_ROOT
}
/lib/libGLEW.a"
)
set
(
GLEW_INCLUDE_DIR
"
${
GLEW_ROOT
}
/include"
)
set
(
GLEW_GLEW_LIBRARY
"
${
GLEW_ROOT
}
/lib/libGLEW.a"
)
set
(
GLEW_INCLUDE_DIR
"
${
GLEW_ROOT
}
/include"
)
include
(
download_pixman
)
set
(
PIXMAN_LIBRARY
"
${
PIXMAN_ROOT
}
/lib/libpixman-1.a"
)
set
(
PIXMAN_LIBRARY
"
${
PIXMAN_ROOT
}
/lib/libpixman-1.a"
)
include
(
download_cairo
)
set
(
CAIRO_INCLUDE_DIR
"
${
CAIRO_ROOT
}
/include/cairo"
)
set
(
CAIRO_LIBRARY
"
${
CAIRO_ROOT
}
/lib/libcairo.a"
)
set
(
CAIRO_INCLUDE_DIR
"
${
CAIRO_ROOT
}
/include/cairo"
)
set
(
CAIRO_LIBRARY
"
${
CAIRO_ROOT
}
/lib/libcairo.a"
)
if
(
KICAD_BUILD_DYNAMIC AND APPLE
)
add_custom_target
(
osx_fix_bundles ALL DEPENDS cvpcb eeschema gerbview kicad pcbnew bitmap2component pcb_calculator pl_editor
)
add_custom_command
(
TARGET osx_fix_bundles POST_BUILD COMMAND scripts/osx_fixbundle.sh COMMENT
"Migrating dylibs to bundles"
)
endif
()
endif
(
KICAD_BUILD_STATIC OR KICAD_BUILD_DYNAMIC
)
#####################
...
...
CMakeModules/config.h.cmake
View file @
33e26b27
...
...
@@ -67,9 +67,14 @@
/// When defined, build the GITHUB_PLUGIN for pcbnew.
#cmakedefine BUILD_GITHUB_PLUGIN
/// When defined, use KIWAY and DSOs
/// When defined, use KIWAY and
KIFACE
DSOs
#cmakedefine USE_KIWAY_DLLS
/// A file extension with a leading '.' is a suffix, and this one is used on
/// top level program modules which implement the KIFACE.
#define KIFACE_SUFFIX wxT( "@KIFACE_SUFFIX@" )
#define KIFACE_PREFIX wxT( "@KIFACE_PREFIX@" )
/// Name of repo from which this build came.
#define KICAD_REPO_NAME "@KICAD_REPO_NAME@"
...
...
common/kiway.cpp
View file @
33e26b27
...
...
@@ -23,9 +23,11 @@
*/
#include <kiway.h>
#include <config.h>
#include <wx/debug.h>
#include <string.h>
// one for each FACE_T
wxDynamicLibrary
KIWAY
::
s_sch_dso
;
wxDynamicLibrary
KIWAY
::
s_pcb_dso
;
...
...
@@ -41,8 +43,8 @@ const wxString KIWAY::dso_name( FACE_T aFaceId )
{
switch
(
aFaceId
)
{
case
FACE_SCH
:
return
wxT
(
"_eeschema."
)
DSO_EXT
;
case
FACE_PCB
:
return
wxT
(
"_pcbnew."
)
DSO_EXT
;
case
FACE_SCH
:
return
KIFACE_PREFIX
wxT
(
"eeschema"
)
KIFACE_SUFFIX
;
case
FACE_PCB
:
return
KIFACE_PREFIX
wxT
(
"pcbnew"
)
KIFACE_SUFFIX
;
default
:
wxASSERT_MSG
(
0
,
wxT
(
"caller has a bug, passed a bad aFaceId"
)
);
...
...
common/single_top.cpp
View file @
33e26b27
...
...
@@ -25,9 +25,9 @@
/*
This is a program launcher for a single
DSO. Initially it will only mimic a
KIWAY not actually implement one, since only a single DSO is supported by
it.
This is a program launcher for a single
KIFACE DSO. Initially it will only
mimic a KIWAY, not actually implement one, since only a single DSO is
supported by
it.
*/
...
...
@@ -107,8 +107,8 @@ static wxString wxJoin(const wxArrayString& arr, const wxChar sep,
#endif
// POLICY CHOICE: return the
name of the DSO to load as
single_top.
static
const
wxString
dso_
name
(
const
wxString
&
aAbsoluteArgv0
)
// POLICY CHOICE: return the
full path of the DSO to load from
single_top.
static
const
wxString
dso_
full_path
(
const
wxString
&
aAbsoluteArgv0
)
{
// Prefix basename with '_' and change extension to DSO_EXT.
...
...
@@ -129,11 +129,14 @@ static const wxString dso_name( const wxString& aAbsoluteArgv0 )
// too many masters here: python, windows, linux, OSX, multiple versions of wx...
wxFileName
fn
(
aAbsoluteArgv0
);
wxString
basename
(
wxT
(
'_'
)
);
wxString
basename
(
KIFACE_PREFIX
);
// start with special prefix
basename
+=
fn
.
GetName
();
basename
+=
fn
.
GetName
();
// add argv[0]'s basename
fn
.
SetName
(
basename
);
fn
.
SetExt
(
DSO_EXT
);
// here a suffix == an extension with a preceding '.',
// so skip the preceding '.' to get an extension
fn
.
SetExt
(
KIFACE_SUFFIX
+
1
);
// special extension, + 1 => &KIFACE_SUFFIX[1]
return
fn
.
GetFullPath
();
}
...
...
@@ -157,10 +160,11 @@ void SetLibEnvVar( const wxString& aAbsoluteArgv0 )
// POLICY CHOICE: Keep same path, so that installer MAY put the
// "subsidiary shared libraries" in the same directory as the top process module.
// A subsidiary shared library is one that is not a top level DSO, but rather
// some shared library that a top level DSO needs to even be loaded.
// some shared library that a top level DSO needs to even be loaded. It is
// a static link to a shared object from a top level DSO.
// This directory POLICY CHOICE is not the only dir in play, since LIB_ENV_VAR
// has numerous path options in it, as does DSO searching on linux.
// has numerous path options in it, as does DSO searching on linux
, windows, and OSX
.
// See "man ldconfig" on linux. What's being done here is for quick installs
// into a non-standard place, and especially for Windows users who may not
// know what the PATH environment variable is or how to set it.
...
...
@@ -183,7 +187,7 @@ void SetLibEnvVar( const wxString& aAbsoluteArgv0 )
}
// Only a single KIWAY is supported in this single_top to level component,
// Only a single KIWAY is supported in this single_top to
p
level component,
// which is dedicated to loading only a single DSO.
static
KIWAY
standalone
;
...
...
@@ -199,7 +203,8 @@ static wxDynamicLibrary dso;
* @param aDSOName is an absolute full path to the DSO to load and find KIFACE_GETTER_FUNC within.
*
* @return KIFACE_GETTER_FUNC* - a pointer to a function which can be called to get the KIFACE
* or NULL if not found or not version compatible.
* or NULL if the getter func was not found. If not found, it is possibly not version compatible
* since the lookup is done by name and the name contains the API version.
*/
static
KIFACE_GETTER_FUNC
*
get_kiface_getter
(
const
wxString
&
aDSOName
)
{
...
...
@@ -234,16 +239,18 @@ bool PROCESS::OnInit()
wxStandardPathsBase
&
paths
=
wxStandardPaths
::
Get
();
#if defined(DEBUG)
wxString
dir
=
paths
.
GetLocalizedResourcesDir
(
wxT
(
"de"
),
wxStandardPaths
::
ResourceCat_None
);
printf
(
"LocalizeResourcesDir:'%s'
\n
"
,
TO_UTF8
(
dir
)
);
wxString
dummy
(
_
(
"translate this"
)
);
#endif
wxString
absoluteArgv0
=
paths
.
GetExecutablePath
();
#if 0
||
defined(DEBUG)
#if 0
&&
defined(DEBUG)
printf( "argv[0]:'%s' absoluteArgv0:'%s'\n",
TO_UTF8( wxString( argv[0] ) ),
TO_UTF8( absoluteArgv0 )
...
...
@@ -256,36 +263,31 @@ bool PROCESS::OnInit()
return
false
;
}
// Set LIB_ENV_VAR *before* loading the DSO, in case the module holding the
// KIFACE has hard dependencies on subsidiary DSOs below it, *before* loading
// the KIFACE.
// Set LIB_ENV_VAR *before* loading the DSO, in case the top-level DSO holding the
// KIFACE has hard dependencies on subsidiary DSOs below it.
SetLibEnvVar
(
absoluteArgv0
);
wxString
dname
=
dso_
name
(
absoluteArgv0
);
wxString
dname
=
dso_
full_path
(
absoluteArgv0
);
// Get the getter.
KIFACE_GETTER_FUNC
*
getter
=
get_kiface_getter
(
dname
);
// get_kiface_getter() returned NULL? If so it handled the UI message, so
// we can fail without any further UI.
if
(
!
getter
)
{
// get_kiface_getter() failed & already showed the UI message.
// Return failure without any further UI.
return
false
;
}
// Get the KIFACE, and give the DSO a single chance to do its
// "process level" initialization.
kiface
=
getter
(
&
kiface_version
,
KIFACE_VERSION
,
&
wxGetApp
()
);
if
(
!
kiface
)
{
// get_kiface_getter() did its own UI error window, because it called
// functions in wxDynamicLibrary which did so using wxLogSysError().
// Therefore say nothing on failure, it's already been said.
// Return false telling startup code to fail the program immediately.
return
false
;
}
// KIFACE_GETTER_FUNC function comment (API) says the non-NULL is uconditional.
wxASSERT_MSG
(
kiface
,
wxT
(
"attempted DSO has a bug, failed to return a KIFACE*"
)
);
// Us
ing the KIFACE,
create a window that the KIFACE knows about,
// pass classId=0 for now.
This uses a virtual function KIFACE::CreateWindow()
// Us
e KIFACE to
create a window that the KIFACE knows about,
// pass classId=0 for now.
KIFACE::CreateWindow() is a virtual
// so we don't need to link to it.
wxFrame
*
frame
=
(
wxFrame
*
)
kiface
->
CreateWindow
(
0
,
&
standalone
);
...
...
eeschema/CMakeLists.txt
View file @
33e26b27
...
...
@@ -236,7 +236,7 @@ set_source_files_properties( dialogs/dialog_bom.cpp
# not ready for even building yet:
if
(
false AND
USE_KIWAY_DLLS
)
if
(
USE_KIWAY_DLLS
)
add_executable
(
eeschema WIN32 MACOSX_BUNDLE
../common/single_top.cpp
...
...
@@ -246,33 +246,33 @@ if( false AND USE_KIWAY_DLLS )
${
wxWidgets_LIBRARIES
}
)
add_library
(
eeschema_
dso
MODULE
add_library
(
eeschema_
kiface
MODULE
${
EESCHEMA_SRCS
}
${
EESCHEMA_COMMON_SRCS
}
${
EESCHEMA_RESOURCES
}
)
set_target_properties
(
eeschema_dso PROPERTIES
# keep whatever file extension is supplied by SUFFIX, do not use the PREFIX,
# and set the basename. The result is eeschema.so or eeschema.dll.
set_target_properties
(
eeschema_kiface PROPERTIES
# Decorate OUTPUT_NAME with PREFIX and SUFFIX, creating something like
# _eeschema.so, _eeschema.dll, or _eeschema.kiface
OUTPUT_NAME eeschema
PREFIX
""
PREFIX
${
KIFACE_PREFIX
}
SUFFIX
${
KIFACE_SUFFIX
}
)
if
(
APPLE
)
set_target_properties
(
eeschema_
dso
PROPERTIES
set_target_properties
(
eeschema_
kiface
PROPERTIES
MACOSX_BUNDLE_INFO_PLIST
${
CMAKE_CURRENT_SOURCE_DIR
}
/Info.plist
)
endif
()
if
(
MAKE_LINK_MAPS
)
# generate a link map with cross reference
set_target_properties
(
eeschema_
dso
PROPERTIES
LINK_FLAGS
"-Wl,-cref -Wl,-Map=
eeschema_dso
.map"
set_target_properties
(
eeschema_
kiface
PROPERTIES
LINK_FLAGS
"-Wl,-cref -Wl,-Map=
${
KIFACE_PRE
}
eeschema.
${
KIFACE_EXT
}
.map"
)
endif
()
target_link_libraries
(
eeschema_
dso
target_link_libraries
(
eeschema_
kiface
common
bitmaps
polygon
...
...
@@ -280,7 +280,9 @@ if( false AND USE_KIWAY_DLLS )
${
GDI_PLUS_LIBRARIES
}
)
install
(
TARGETS eeschema_dso
# Note that this filename is subject to change at milestone C) of
# modular-kicad blueprint.
install
(
TARGETS eeschema_kiface
DESTINATION
${
KICAD_BIN
}
COMPONENT binary
)
...
...
eeschema/eeschema.cpp
View file @
33e26b27
...
...
@@ -53,7 +53,7 @@
#include <kiway.h>
#include <import_export.h>
struct
SCH_FACE
:
public
KIFACE
st
atic
st
ruct
SCH_FACE
:
public
KIFACE
{
wxWindow
*
CreateWindow
(
int
aClassId
,
KIWAY
*
aKIWAY
,
int
aCtlBits
=
0
)
{
...
...
@@ -76,27 +76,28 @@ struct SCH_FACE : public KIFACE
*
* @return void* - and must be cast into the know type.
*/
VTBL_ENTRY
void
*
IfaceOrAddress
(
int
aDataId
)
void
*
IfaceOrAddress
(
int
aDataId
)
{
return
NULL
;
}
}
kiface
;
static
EDA_APP
*
app
;
extern
"C"
KIFACE
*
KIFACE_GETTER
(
int
*
aKIFACEversion
,
int
aKIWAYversion
,
wxApp
*
aProcess
);
static
EDA_APP
*
process
;
// KIFACE_GETTER's actual spelling is a substitution macro found in kiway.h.
// KIFACE_GETTER will not have name mangling due to declaration in kiway.h.
MY_API
(
KIFACE
*
)
KIFACE_GETTER
(
int
*
aKIFACEversion
,
int
aKIWAYversion
,
wxApp
*
aProcess
)
{
app
=
(
EDA_APP
*
)
aProcess
;
process
=
(
EDA_APP
*
)
aProcess
;
return
&
kiface
;
}
EDA_APP
&
wxGetApp
()
{
return
*
app
;
wxASSERT
(
process
);
// KIFACE_GETTER has already been called.
return
*
process
;
}
#else
...
...
@@ -111,7 +112,6 @@ IMPLEMENT_APP( EDA_APP )
#endif
// Global variables
wxSize
g_RepeatStep
;
int
g_RepeatDeltaLabel
;
...
...
include/kiway.h
View file @
33e26b27
...
...
@@ -115,15 +115,12 @@ as such! As such, it is OK to use UTF8 characters:
#if defined(__linux__)
#define LIB_ENV_VAR wxT( "LD_LIBRARY_PATH" )
#define DSO_EXT wxT( "so" )
#elif defined(__WXMAC__)
#define LIB_ENV_VAR wxT( "DYLD_LIBRARY_PATH" )
// This should be set to whatever CMake builds when using:
// add_library( target MODULE )
#define DSO_EXT wxT( "so" )
#elif defined(__MINGW32__)
#define LIB_ENV_VAR wxT( "PATH" )
#define DSO_EXT wxT( "dll" )
#endif
...
...
@@ -139,7 +136,7 @@ class PROJECT
public
:
#if 0
/// Derive PRO
CESS
elements from this, it has a virtual destructor, and
/// Derive PRO
JECT
elements from this, it has a virtual destructor, and
/// Elem*() functions can work with it.
class ELEM_BASE
{
...
...
@@ -220,13 +217,15 @@ struct KIFACE
* <p>
* Most all calls are via virtual functions which means C++ vtables
* are used to hold function pointers and eliminate the need to link to specific
* object code libraries, speeding development and encourag
e
clearly defined
* object code libraries, speeding development and encourag
ing
clearly defined
* interface design. There is one KIWAY in the launching portion of the process
* for each open KiCad project. Each project has its own KIWAY. Within a KIWAY
* is an actual PROJECT data structure. In summary, a KIWAY facilitates
* communicating between DSOs, where the topic of the communication is
* project specific. Here a "project" means a BOARD and a SCHEMATIC and a NETLIST,
* (anything relating to production of a single BOARD and added to class PROJECT.)
* is an actual PROJECT data structure.
* <p>
* In summary, a KIWAY facilitates communicating between DSOs, where the topic
* of the communication is project specific. Here a "project" means a BOARD
* and a SCHEMATIC and a NETLIST, (anything relating to production of a single BOARD
* and added to class PROJECT.)
*/
class
KIWAY
:
public
wxEvtHandler
{
...
...
@@ -279,7 +278,11 @@ private:
* @param aKIFACEversion is where to put the API version implemented by the KIFACE.
* @param aKIWAYversion tells the KIFACE what KIWAY version will be available.
* @param aProcess is a pointer to the basic wxApp for this process.
* @return KIFACE* - unconditionally.
*/
typedef
KIFACE
*
KIFACE_GETTER_FUNC
(
int
*
aKIFACEversion
,
int
aKIWAYversion
,
wxApp
*
aProcess
);
/// No name mangling. Each TOPMOD will implement this once.
extern
"C"
KIFACE
*
KIFACE_GETTER
(
int
*
aKIFACEversion
,
int
aKIWAYversion
,
wxApp
*
aProcess
);
#endif // KIWAY_H_
tools/CMakeLists.txt
View file @
33e26b27
...
...
@@ -78,13 +78,12 @@ target_link_libraries( property_tree
)
#-----<
MACOSX Temp Testing>---------
---------------------------------------------
#-----<
KIWAY Low Level DSO Testing>
---------------------------------------------
# The small launcher, it sets up wxWidgets library and loads a MODULE by the same name
# but with extension *.dylib. The two files: mac_test and mac_test.dylib must be in
# same directory for the launcher to find the *.dylib.
# but with extension ${KIFACE_SUFFIX}.
set
(
PAIR_BASE
dso
)
set
(
PAIR_BASE
kiway_test
)
add_executable
(
${
PAIR_BASE
}
WIN32 MACOSX_BUNDLE
EXCLUDE_FROM_ALL
...
...
@@ -94,37 +93,37 @@ target_link_libraries( ${PAIR_BASE}
common
${
wxWidgets_LIBRARIES
}
)
if
(
APPLE
)
set_target_properties
(
${
PAIR_BASE
}
PROPERTIES
MACOSX_BUNDLE_INFO_PLIST
${
CMAKE_CURRENT_SOURCE_DIR
}
/Info.plist
)
endif
()
# make a
DLL/DSO/DYLIB, but *_dso is not its real name, see OUTPUT_NAME below.
add_library
(
${
PAIR_BASE
}
_
dso
MODULE
# make a
KIFACE top level DLL/DSO
add_library
(
${
PAIR_BASE
}
_
kiface
MODULE
EXCLUDE_FROM_ALL
mac
_test.cpp
kiface
_test.cpp
)
target_link_libraries
(
${
PAIR_BASE
}
_
dso
target_link_libraries
(
${
PAIR_BASE
}
_
kiface
common
${
wxWidgets_LIBRARIES
}
)
set_target_properties
(
${
PAIR_BASE
}
_dso PROPERTIES
# keep whatever file extension is supplied by SUFFIX, do not use the PREFIX,
# and set the basename. The result is ${PAIR_BASE}.so or ${PAIR_BASE}.dll,
# or ${PAIR_BASE}.dylib
set_target_properties
(
${
PAIR_BASE
}
_kiface PROPERTIES
OUTPUT_NAME
${
PAIR_BASE
}
PREFIX
"_"
PREFIX
${
KIFACE_PREFIX
}
SUFFIX
${
KIFACE_SUFFIX
}
)
if
(
APPLE
)
set_target_properties
(
${
PAIR_BASE
}
PROPERTIES
MACOSX_BUNDLE_INFO_PLIST
${
CMAKE_CURRENT_SOURCE_DIR
}
/Info.plist
)
endif
()
# if you build ${PAIR_BASE}, then also build ${PAIR_BASE}_kiface if out of date.
add_dependencies
(
${
PAIR_BASE
}
${
PAIR_BASE
}
_kiface
)
if
(
MAKE_LINK_MAPS
)
# generate a link maps with cross reference
set_target_properties
(
${
PAIR_BASE
}
_
dso
PROPERTIES
LINK_FLAGS
"
${
TO_LINKER
}
,-cref
${
TO_LINKER
}
,-Map=
${
PAIR_BASE
}
_dso
.map"
set_target_properties
(
${
PAIR_BASE
}
_
kiface
PROPERTIES
LINK_FLAGS
"
${
TO_LINKER
}
,-cref
${
TO_LINKER
}
,-Map=
${
KIFACE_PREFIX
}${
PAIR_BASE
}${
KIFACE_SUFFIX
}
.map"
)
set_target_properties
(
${
PAIR_BASE
}
PROPERTIES
...
...
tools/
mac
_test.cpp
→
tools/
kiface
_test.cpp
View file @
33e26b27
File moved
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment