mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-05-13 10:51:35 +00:00
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}
|
${GENERATOR_COMMON_ARGS}
|
||||||
-T libdawn
|
-T libdawn
|
||||||
)
|
)
|
||||||
|
target_compile_definitions(libdawn_autogen PRIVATE DAWN_IMPLEMENTATION)
|
||||||
|
|
||||||
add_library(libdawn STATIC
|
add_library(libdawn SHARED
|
||||||
$<TARGET_OBJECTS:libdawn_autogen>
|
$<TARGET_OBJECTS:libdawn_autogen>
|
||||||
|
${INCLUDE_DIR}/dawn/dawn_export.h
|
||||||
${INCLUDE_DIR}/dawn/dawn_wsi.h
|
${INCLUDE_DIR}/dawn/dawn_wsi.h
|
||||||
${INCLUDE_DIR}/dawn/EnumClassBitmasks.h
|
${INCLUDE_DIR}/dawn/EnumClassBitmasks.h
|
||||||
)
|
)
|
||||||
|
@ -15,6 +15,8 @@
|
|||||||
#ifndef DAWN_DAWN_H_
|
#ifndef DAWN_DAWN_H_
|
||||||
#define DAWN_DAWN_H_
|
#define DAWN_DAWN_H_
|
||||||
|
|
||||||
|
#include "dawn/dawn_export.h"
|
||||||
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
#include <stdbool.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.
|
// Stuff below is for convenience and will forward calls to a static dawnProcTable.
|
||||||
|
|
||||||
// Set which dawnProcTable will be used
|
// Set which dawnProcTable will be used
|
||||||
void dawnSetProcs(const dawnProcTable* procs);
|
DAWN_EXPORT void dawnSetProcs(const dawnProcTable* procs);
|
||||||
|
|
||||||
{% for type in by_category["object"] %}
|
{% for type in by_category["object"] %}
|
||||||
// Methods of {{type.name.CamelCase()}}
|
// Methods of {{type.name.CamelCase()}}
|
||||||
{% for method in native_methods(type) %}
|
{% 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)}}
|
{{-as_cType(type.name)}} {{as_varName(type.name)}}
|
||||||
{%- for arg in method.arguments -%}
|
{%- for arg in method.arguments -%}
|
||||||
, {{as_annotated_cType(arg)}}
|
, {{as_annotated_cType(arg)}}
|
||||||
|
@ -15,8 +15,8 @@
|
|||||||
#ifndef DAWN_DAWNCPP_H_
|
#ifndef DAWN_DAWNCPP_H_
|
||||||
#define DAWN_DAWNCPP_H_
|
#define DAWN_DAWNCPP_H_
|
||||||
|
|
||||||
#include "dawn.h"
|
#include "dawn/dawn.h"
|
||||||
|
#include "dawn/dawn_export.h"
|
||||||
#include "dawn/EnumClassBitmasks.h"
|
#include "dawn/EnumClassBitmasks.h"
|
||||||
|
|
||||||
namespace dawn {
|
namespace dawn {
|
||||||
@ -141,7 +141,7 @@ namespace dawn {
|
|||||||
{% for type in by_category["object"] %}
|
{% for type in by_category["object"] %}
|
||||||
{% set CppType = as_cppType(type.name) %}
|
{% set CppType = as_cppType(type.name) %}
|
||||||
{% set CType = as_cType(type.name) %}
|
{% set CType = as_cType(type.name) %}
|
||||||
class {{CppType}} : public ObjectBase<{{CppType}}, {{CType}}> {
|
class DAWN_EXPORT {{CppType}} : public ObjectBase<{{CppType}}, {{CType}}> {
|
||||||
public:
|
public:
|
||||||
using ObjectBase::ObjectBase;
|
using ObjectBase::ObjectBase;
|
||||||
using ObjectBase::operator=;
|
using ObjectBase::operator=;
|
||||||
|
32
src/include/dawn/dawn_export.h
Normal file
32
src/include/dawn/dawn_export.h
Normal file
@ -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…
x
Reference in New Issue
Block a user