Make libdawn a shared library, add a DAWN_EXPORT macro
This commit is contained in:
parent
e37234cd22
commit
5dcaadb0f9
|
@ -216,9 +216,11 @@ Generate(
|
|||
${GENERATOR_COMMON_ARGS}
|
||||
-T libdawn
|
||||
)
|
||||
target_compile_definitions(libdawn_autogen PRIVATE DAWN_IMPLEMENTATION)
|
||||
|
||||
add_library(libdawn STATIC
|
||||
add_library(libdawn SHARED
|
||||
$<TARGET_OBJECTS:libdawn_autogen>
|
||||
${INCLUDE_DIR}/dawn/dawn_export.h
|
||||
${INCLUDE_DIR}/dawn/dawn_wsi.h
|
||||
${INCLUDE_DIR}/dawn/EnumClassBitmasks.h
|
||||
)
|
||||
|
|
|
@ -15,6 +15,8 @@
|
|||
#ifndef DAWN_DAWN_H_
|
||||
#define DAWN_DAWN_H_
|
||||
|
||||
#include "dawn/dawn_export.h"
|
||||
|
||||
#include <stdint.h>
|
||||
#include <stddef.h>
|
||||
#include <stdbool.h>
|
||||
|
@ -81,12 +83,12 @@ typedef struct dawnProcTable_s dawnProcTable;
|
|||
// Stuff below is for convenience and will forward calls to a static dawnProcTable.
|
||||
|
||||
// Set which dawnProcTable will be used
|
||||
void dawnSetProcs(const dawnProcTable* procs);
|
||||
DAWN_EXPORT void dawnSetProcs(const dawnProcTable* procs);
|
||||
|
||||
{% for type in by_category["object"] %}
|
||||
// Methods of {{type.name.CamelCase()}}
|
||||
{% for method in native_methods(type) %}
|
||||
{{as_cType(method.return_type.name)}} {{as_cMethod(type.name, method.name)}}(
|
||||
DAWN_EXPORT {{as_cType(method.return_type.name)}} {{as_cMethod(type.name, method.name)}}(
|
||||
{{-as_cType(type.name)}} {{as_varName(type.name)}}
|
||||
{%- for arg in method.arguments -%}
|
||||
, {{as_annotated_cType(arg)}}
|
||||
|
|
|
@ -15,8 +15,8 @@
|
|||
#ifndef DAWN_DAWNCPP_H_
|
||||
#define DAWN_DAWNCPP_H_
|
||||
|
||||
#include "dawn.h"
|
||||
|
||||
#include "dawn/dawn.h"
|
||||
#include "dawn/dawn_export.h"
|
||||
#include "dawn/EnumClassBitmasks.h"
|
||||
|
||||
namespace dawn {
|
||||
|
@ -141,7 +141,7 @@ namespace dawn {
|
|||
{% for type in by_category["object"] %}
|
||||
{% set CppType = as_cppType(type.name) %}
|
||||
{% set CType = as_cType(type.name) %}
|
||||
class {{CppType}} : public ObjectBase<{{CppType}}, {{CType}}> {
|
||||
class DAWN_EXPORT {{CppType}} : public ObjectBase<{{CppType}}, {{CType}}> {
|
||||
public:
|
||||
using ObjectBase::ObjectBase;
|
||||
using ObjectBase::operator=;
|
||||
|
|
|
@ -0,0 +1,32 @@
|
|||
// Copyright 2018 The Dawn Authors
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
#ifndef DAWN_EXPORT_H_
|
||||
#define DAWN_EXPORT_H_
|
||||
|
||||
#if defined(WIN32)
|
||||
# if defined(DAWN_IMPLEMENTATION)
|
||||
# define DAWN_EXPORT __declspec(dllexport)
|
||||
# else
|
||||
# define DAWN_EXPORT __declspec(dllimport)
|
||||
# endif
|
||||
#else
|
||||
# if defined(DAWN_IMPLEMENTATION)
|
||||
# define DAWN_EXPORT __attribute__((visibility("default")))
|
||||
# else
|
||||
# define DAWN_EXPORT
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#endif // DAWN_EXPORT_H_
|
Loading…
Reference in New Issue