CMakeLists.txt
author Ethan Lee <flibitijibibo@flibitijibibo.com>
Mon, 18 Feb 2019 21:48:09 -0500
changeset 1191 f2ecd5032ffe
parent 1187 0687a8d78a54
child 1192 706e4d246ca1
permissions -rw-r--r--
CMake: Make Hg dependency optional (thanks Chad!)
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
711
d547597e81de Cleaned up some CMake issues.
Ryan C. Gordon <icculus@icculus.org>
parents: 710
diff changeset
     1
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
35
5749d174b537 [svn] Might as well keep the tradition alive.
icculus
parents: 10
diff changeset
     2
PROJECT(MojoShader)
48
86dc2c772d26 [svn] Enabled -Wall, found some bugs.
icculus
parents: 35
diff changeset
     3
1150
02c0f0afb39a - Add ability to build MojoShader as a shared library
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1134
diff changeset
     4
OPTION(BUILD_SHARED "Build MojoShader as a shared library" OFF)
02c0f0afb39a - Add ability to build MojoShader as a shared library
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1134
diff changeset
     5
OPTION(PROFILE_D3D "Build MojoShader with support for the D3D profile" ON)
02c0f0afb39a - Add ability to build MojoShader as a shared library
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1134
diff changeset
     6
OPTION(PROFILE_BYTECODE "Build MojoShader with support for the BYTECODE profile" ON)
02c0f0afb39a - Add ability to build MojoShader as a shared library
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1134
diff changeset
     7
OPTION(PROFILE_GLSL120 "Build MojoShader with support for the GLSL120 profile" ON)
02c0f0afb39a - Add ability to build MojoShader as a shared library
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1134
diff changeset
     8
OPTION(PROFILE_GLSL "Build MojoShader with support for the GLSL profile" ON)
02c0f0afb39a - Add ability to build MojoShader as a shared library
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1134
diff changeset
     9
OPTION(PROFILE_ARB1 "Build MojoShader with support for the ARB1 profile" ON)
02c0f0afb39a - Add ability to build MojoShader as a shared library
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1134
diff changeset
    10
OPTION(PROFILE_ARB1_NV "Build MojoShader with support for the ARB1_NV profile" ON)
1172
55700e64bd8c Make Metal profile optional in the CMake project.
Ryan C. Gordon <icculus@icculus.org>
parents: 1166
diff changeset
    11
OPTION(PROFILE_METAL "Build MojoShader with support for the Metal profile" ON)
1166
ba0794ea4172 Default to building with Effects framework support enabled.
Ryan C. Gordon <icculus@icculus.org>
parents: 1150
diff changeset
    12
OPTION(EFFECT_SUPPORT "Build MojoShader with support for Effect framework files" ON)
1187
0687a8d78a54 Add COMPILER_SUPPORT CMake flag, do not build effect/compiler files if disabled
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1172
diff changeset
    13
OPTION(COMPILER_SUPPORT "Build MojoShader with support for HLSL source files" ON)
1150
02c0f0afb39a - Add ability to build MojoShader as a shared library
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1134
diff changeset
    14
OPTION(FLIP_VIEWPORT "Build MojoShader with the ability to flip the GL viewport" OFF)
02c0f0afb39a - Add ability to build MojoShader as a shared library
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1134
diff changeset
    15
OPTION(DEPTH_CLIPPING "Build MojoShader with the ability to simulate [0, 1] depth clipping" OFF)
02c0f0afb39a - Add ability to build MojoShader as a shared library
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1134
diff changeset
    16
OPTION(XNA4_VERTEXTEXTURE "Build MojoShader with XNA4 vertex texturing behavior" OFF)
02c0f0afb39a - Add ability to build MojoShader as a shared library
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1134
diff changeset
    17
588
ef3d2efa822d Moved all the test and utility programs to a "utils" directory.
Ryan C. Gordon <icculus@icculus.org>
parents: 569
diff changeset
    18
INCLUDE_DIRECTORIES(.)
ef3d2efa822d Moved all the test and utility programs to a "utils" directory.
Ryan C. Gordon <icculus@icculus.org>
parents: 569
diff changeset
    19
1191
f2ecd5032ffe CMake: Make Hg dependency optional (thanks Chad!)
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1187
diff changeset
    20
# If Mercurial is installed and we are in a mercurial repository, include the rev# and changeset as version information.
569
117d6e606c4e Cleaned up CMakeLists.txt to work in the absence of external tools.
Ryan C. Gordon <icculus@icculus.org>
parents: 563
diff changeset
    21
FIND_PROGRAM(HG hg DOC "Path to hg command line app: http://www.selenic.com/mercurial/")
117d6e606c4e Cleaned up CMakeLists.txt to work in the absence of external tools.
Ryan C. Gordon <icculus@icculus.org>
parents: 563
diff changeset
    22
IF(NOT HG)
117d6e606c4e Cleaned up CMakeLists.txt to work in the absence of external tools.
Ryan C. Gordon <icculus@icculus.org>
parents: 563
diff changeset
    23
    MESSAGE(STATUS "Mercurial (hg) not found. You can go on, but version info will be wrong.")
117d6e606c4e Cleaned up CMakeLists.txt to work in the absence of external tools.
Ryan C. Gordon <icculus@icculus.org>
parents: 563
diff changeset
    24
    SET(MOJOSHADER_VERSION -1)
117d6e606c4e Cleaned up CMakeLists.txt to work in the absence of external tools.
Ryan C. Gordon <icculus@icculus.org>
parents: 563
diff changeset
    25
    SET(MOJOSHADER_CHANGESET "???")
117d6e606c4e Cleaned up CMakeLists.txt to work in the absence of external tools.
Ryan C. Gordon <icculus@icculus.org>
parents: 563
diff changeset
    26
ELSE(NOT HG)
117d6e606c4e Cleaned up CMakeLists.txt to work in the absence of external tools.
Ryan C. Gordon <icculus@icculus.org>
parents: 563
diff changeset
    27
    MARK_AS_ADVANCED(HG)
1191
f2ecd5032ffe CMake: Make Hg dependency optional (thanks Chad!)
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1187
diff changeset
    28
f2ecd5032ffe CMake: Make Hg dependency optional (thanks Chad!)
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1187
diff changeset
    29
    # See if we are in an hg repository.
569
117d6e606c4e Cleaned up CMakeLists.txt to work in the absence of external tools.
Ryan C. Gordon <icculus@icculus.org>
parents: 563
diff changeset
    30
    EXECUTE_PROCESS(
1191
f2ecd5032ffe CMake: Make Hg dependency optional (thanks Chad!)
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1187
diff changeset
    31
        COMMAND hg root
569
117d6e606c4e Cleaned up CMakeLists.txt to work in the absence of external tools.
Ryan C. Gordon <icculus@icculus.org>
parents: 563
diff changeset
    32
        WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
117d6e606c4e Cleaned up CMakeLists.txt to work in the absence of external tools.
Ryan C. Gordon <icculus@icculus.org>
parents: 563
diff changeset
    33
        RESULT_VARIABLE HGVERSION_RC
117d6e606c4e Cleaned up CMakeLists.txt to work in the absence of external tools.
Ryan C. Gordon <icculus@icculus.org>
parents: 563
diff changeset
    34
        ERROR_QUIET
117d6e606c4e Cleaned up CMakeLists.txt to work in the absence of external tools.
Ryan C. Gordon <icculus@icculus.org>
parents: 563
diff changeset
    35
    )
1191
f2ecd5032ffe CMake: Make Hg dependency optional (thanks Chad!)
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1187
diff changeset
    36
    IF(NOT HGVERSION_RC EQUAL 0)
f2ecd5032ffe CMake: Make Hg dependency optional (thanks Chad!)
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1187
diff changeset
    37
        MESSAGE(STATUS "Mercurial (hg) repository not found. You can go on, but version info will be wrong.")
f2ecd5032ffe CMake: Make Hg dependency optional (thanks Chad!)
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1187
diff changeset
    38
        SET(MOJOSHADER_VERSION -1)
f2ecd5032ffe CMake: Make Hg dependency optional (thanks Chad!)
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1187
diff changeset
    39
        SET(MOJOSHADER_CHANGESET "???")
f2ecd5032ffe CMake: Make Hg dependency optional (thanks Chad!)
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1187
diff changeset
    40
    ELSE(NOT HGVERSION_RC EQUAL 0)
f2ecd5032ffe CMake: Make Hg dependency optional (thanks Chad!)
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1187
diff changeset
    41
        # Query the rev and changeset.
f2ecd5032ffe CMake: Make Hg dependency optional (thanks Chad!)
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1187
diff changeset
    42
        EXECUTE_PROCESS(
f2ecd5032ffe CMake: Make Hg dependency optional (thanks Chad!)
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1187
diff changeset
    43
            COMMAND hg tip --template {rev}
f2ecd5032ffe CMake: Make Hg dependency optional (thanks Chad!)
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1187
diff changeset
    44
            WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
f2ecd5032ffe CMake: Make Hg dependency optional (thanks Chad!)
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1187
diff changeset
    45
            RESULT_VARIABLE HGVERSION_RC
f2ecd5032ffe CMake: Make Hg dependency optional (thanks Chad!)
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1187
diff changeset
    46
            OUTPUT_VARIABLE MOJOSHADER_VERSION
f2ecd5032ffe CMake: Make Hg dependency optional (thanks Chad!)
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1187
diff changeset
    47
            ERROR_QUIET
f2ecd5032ffe CMake: Make Hg dependency optional (thanks Chad!)
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1187
diff changeset
    48
            OUTPUT_STRIP_TRAILING_WHITESPACE
f2ecd5032ffe CMake: Make Hg dependency optional (thanks Chad!)
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1187
diff changeset
    49
        )
f2ecd5032ffe CMake: Make Hg dependency optional (thanks Chad!)
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1187
diff changeset
    50
        EXECUTE_PROCESS(
f2ecd5032ffe CMake: Make Hg dependency optional (thanks Chad!)
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1187
diff changeset
    51
            COMMAND hg tip --template hg-{rev}:{node|short}
f2ecd5032ffe CMake: Make Hg dependency optional (thanks Chad!)
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1187
diff changeset
    52
            WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
f2ecd5032ffe CMake: Make Hg dependency optional (thanks Chad!)
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1187
diff changeset
    53
            RESULT_VARIABLE HGVERSION_RC
f2ecd5032ffe CMake: Make Hg dependency optional (thanks Chad!)
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1187
diff changeset
    54
            OUTPUT_VARIABLE MOJOSHADER_CHANGESET
f2ecd5032ffe CMake: Make Hg dependency optional (thanks Chad!)
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1187
diff changeset
    55
            ERROR_QUIET
f2ecd5032ffe CMake: Make Hg dependency optional (thanks Chad!)
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1187
diff changeset
    56
            OUTPUT_STRIP_TRAILING_WHITESPACE
f2ecd5032ffe CMake: Make Hg dependency optional (thanks Chad!)
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1187
diff changeset
    57
        )
f2ecd5032ffe CMake: Make Hg dependency optional (thanks Chad!)
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1187
diff changeset
    58
    ENDIF(NOT HGVERSION_RC EQUAL 0)
569
117d6e606c4e Cleaned up CMakeLists.txt to work in the absence of external tools.
Ryan C. Gordon <icculus@icculus.org>
parents: 563
diff changeset
    59
ENDIF(NOT HG)
455
d99f47386d51 Generate MOJOSHADER_VERSION, etc.
Ryan C. Gordon <icculus@icculus.org>
parents: 423
diff changeset
    60
d99f47386d51 Generate MOJOSHADER_VERSION, etc.
Ryan C. Gordon <icculus@icculus.org>
parents: 423
diff changeset
    61
WRITE_FILE(
d99f47386d51 Generate MOJOSHADER_VERSION, etc.
Ryan C. Gordon <icculus@icculus.org>
parents: 423
diff changeset
    62
    "${CMAKE_CURRENT_SOURCE_DIR}/mojoshader_version.h"
d99f47386d51 Generate MOJOSHADER_VERSION, etc.
Ryan C. Gordon <icculus@icculus.org>
parents: 423
diff changeset
    63
    "/* This file was autogenerated. Do not edit! */\n"
d99f47386d51 Generate MOJOSHADER_VERSION, etc.
Ryan C. Gordon <icculus@icculus.org>
parents: 423
diff changeset
    64
    "#ifndef _INCL_MOJOSHADER_VERSION_H_\n"
d99f47386d51 Generate MOJOSHADER_VERSION, etc.
Ryan C. Gordon <icculus@icculus.org>
parents: 423
diff changeset
    65
    "#define _INCL_MOJOSHADER_VERSION_H_\n"
d99f47386d51 Generate MOJOSHADER_VERSION, etc.
Ryan C. Gordon <icculus@icculus.org>
parents: 423
diff changeset
    66
    "#define MOJOSHADER_VERSION ${MOJOSHADER_VERSION}\n"
d99f47386d51 Generate MOJOSHADER_VERSION, etc.
Ryan C. Gordon <icculus@icculus.org>
parents: 423
diff changeset
    67
    "#define MOJOSHADER_CHANGESET \"${MOJOSHADER_CHANGESET}\"\n"
d99f47386d51 Generate MOJOSHADER_VERSION, etc.
Ryan C. Gordon <icculus@icculus.org>
parents: 423
diff changeset
    68
    "#endif\n"
d99f47386d51 Generate MOJOSHADER_VERSION, etc.
Ryan C. Gordon <icculus@icculus.org>
parents: 423
diff changeset
    69
)
d99f47386d51 Generate MOJOSHADER_VERSION, etc.
Ryan C. Gordon <icculus@icculus.org>
parents: 423
diff changeset
    70
48
86dc2c772d26 [svn] Enabled -Wall, found some bugs.
icculus
parents: 35
diff changeset
    71
IF(CMAKE_COMPILER_IS_GNUCC)
86dc2c772d26 [svn] Enabled -Wall, found some bugs.
icculus
parents: 35
diff changeset
    72
    ADD_DEFINITIONS(-Wall -ggdb3)
86dc2c772d26 [svn] Enabled -Wall, found some bugs.
icculus
parents: 35
diff changeset
    73
ENDIF(CMAKE_COMPILER_IS_GNUCC)
86dc2c772d26 [svn] Enabled -Wall, found some bugs.
icculus
parents: 35
diff changeset
    74
52
305ddf21d660 [svn] Okay, done with memory profiling for now.
icculus
parents: 48
diff changeset
    75
# testparse uses this when I'm looking at memory usage patterns.
305ddf21d660 [svn] Okay, done with memory profiling for now.
icculus
parents: 48
diff changeset
    76
#ADD_DEFINITIONS(-DMOJOSHADER_DEBUG_MALLOC=1)
48
86dc2c772d26 [svn] Enabled -Wall, found some bugs.
icculus
parents: 35
diff changeset
    77
254
13184ff204b9 More Windows patches.
Ryan C. Gordon <icculus@icculus.org>
parents: 225
diff changeset
    78
IF(MSVC)
13184ff204b9 More Windows patches.
Ryan C. Gordon <icculus@icculus.org>
parents: 225
diff changeset
    79
    ADD_DEFINITIONS(-D_CRT_SECURE_NO_WARNINGS=1)
13184ff204b9 More Windows patches.
Ryan C. Gordon <icculus@icculus.org>
parents: 225
diff changeset
    80
    ADD_DEFINITIONS(-TP)  # force .c files to compile as C++.
13184ff204b9 More Windows patches.
Ryan C. Gordon <icculus@icculus.org>
parents: 225
diff changeset
    81
ENDIF(MSVC)
13184ff204b9 More Windows patches.
Ryan C. Gordon <icculus@icculus.org>
parents: 225
diff changeset
    82
706
01a92f30b84f Added some basic compiler stub stuff, just to get this building at all.
Ryan C. Gordon <icculus@icculus.org>
parents: 705
diff changeset
    83
# We build lemon, then use it to generate parser C code.
1187
0687a8d78a54 Add COMPILER_SUPPORT CMake flag, do not build effect/compiler files if disabled
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1172
diff changeset
    84
IF(COMPILER_SUPPORT)
0687a8d78a54 Add COMPILER_SUPPORT CMake flag, do not build effect/compiler files if disabled
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1172
diff changeset
    85
    ADD_EXECUTABLE(lemon "misc/lemon.c")
0687a8d78a54 Add COMPILER_SUPPORT CMake flag, do not build effect/compiler files if disabled
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1172
diff changeset
    86
    GET_TARGET_PROPERTY(LEMON lemon LOCATION)
0687a8d78a54 Add COMPILER_SUPPORT CMake flag, do not build effect/compiler files if disabled
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1172
diff changeset
    87
    ADD_CUSTOM_COMMAND(
0687a8d78a54 Add COMPILER_SUPPORT CMake flag, do not build effect/compiler files if disabled
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1172
diff changeset
    88
        OUTPUT "${CMAKE_CURRENT_SOURCE_DIR}/mojoshader_parser_hlsl.h"
0687a8d78a54 Add COMPILER_SUPPORT CMake flag, do not build effect/compiler files if disabled
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1172
diff changeset
    89
        MAIN_DEPENDENCY "${CMAKE_CURRENT_SOURCE_DIR}/mojoshader_parser_hlsl.lemon"
0687a8d78a54 Add COMPILER_SUPPORT CMake flag, do not build effect/compiler files if disabled
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1172
diff changeset
    90
        DEPENDS lemon "${CMAKE_CURRENT_SOURCE_DIR}/misc/lempar.c"
0687a8d78a54 Add COMPILER_SUPPORT CMake flag, do not build effect/compiler files if disabled
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1172
diff changeset
    91
        COMMAND "${LEMON}"
0687a8d78a54 Add COMPILER_SUPPORT CMake flag, do not build effect/compiler files if disabled
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1172
diff changeset
    92
        ARGS -q "-T${CMAKE_CURRENT_SOURCE_DIR}/misc/lempar.c" "${CMAKE_CURRENT_SOURCE_DIR}/mojoshader_parser_hlsl.lemon"
0687a8d78a54 Add COMPILER_SUPPORT CMake flag, do not build effect/compiler files if disabled
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1172
diff changeset
    93
    )
0687a8d78a54 Add COMPILER_SUPPORT CMake flag, do not build effect/compiler files if disabled
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1172
diff changeset
    94
ENDIF(COMPILER_SUPPORT)
706
01a92f30b84f Added some basic compiler stub stuff, just to get this building at all.
Ryan C. Gordon <icculus@icculus.org>
parents: 705
diff changeset
    95
1150
02c0f0afb39a - Add ability to build MojoShader as a shared library
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1134
diff changeset
    96
IF(APPLE)
02c0f0afb39a - Add ability to build MojoShader as a shared library
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1134
diff changeset
    97
    find_library(CARBON_FRAMEWORK Carbon)  # Stupid Gestalt.
02c0f0afb39a - Add ability to build MojoShader as a shared library
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1134
diff changeset
    98
ENDIF(APPLE)
02c0f0afb39a - Add ability to build MojoShader as a shared library
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1134
diff changeset
    99
02c0f0afb39a - Add ability to build MojoShader as a shared library
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1134
diff changeset
   100
IF(NOT PROFILE_D3D)
02c0f0afb39a - Add ability to build MojoShader as a shared library
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1134
diff changeset
   101
    ADD_DEFINITIONS(-DSUPPORT_PROFILE_D3D=0)
02c0f0afb39a - Add ability to build MojoShader as a shared library
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1134
diff changeset
   102
ENDIF(NOT PROFILE_D3D)
02c0f0afb39a - Add ability to build MojoShader as a shared library
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1134
diff changeset
   103
IF(NOT PROFILE_BYTECODE)
02c0f0afb39a - Add ability to build MojoShader as a shared library
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1134
diff changeset
   104
    ADD_DEFINITIONS(-DSUPPORT_PROFILE_BYTECODE=0)
02c0f0afb39a - Add ability to build MojoShader as a shared library
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1134
diff changeset
   105
ENDIF(NOT PROFILE_BYTECODE)
02c0f0afb39a - Add ability to build MojoShader as a shared library
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1134
diff changeset
   106
IF(NOT PROFILE_GLSL120)
02c0f0afb39a - Add ability to build MojoShader as a shared library
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1134
diff changeset
   107
    ADD_DEFINITIONS(-DSUPPORT_PROFILE_GLSL120=0)
02c0f0afb39a - Add ability to build MojoShader as a shared library
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1134
diff changeset
   108
ENDIF(NOT PROFILE_GLSL120)
02c0f0afb39a - Add ability to build MojoShader as a shared library
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1134
diff changeset
   109
IF(NOT PROFILE_GLSL)
02c0f0afb39a - Add ability to build MojoShader as a shared library
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1134
diff changeset
   110
    ADD_DEFINITIONS(-DSUPPORT_PROFILE_GLSL=0)
02c0f0afb39a - Add ability to build MojoShader as a shared library
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1134
diff changeset
   111
ENDIF(NOT PROFILE_GLSL)
02c0f0afb39a - Add ability to build MojoShader as a shared library
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1134
diff changeset
   112
IF(NOT PROFILE_ARB1)
02c0f0afb39a - Add ability to build MojoShader as a shared library
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1134
diff changeset
   113
    ADD_DEFINITIONS(-DSUPPORT_PROFILE_ARB1=0)
02c0f0afb39a - Add ability to build MojoShader as a shared library
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1134
diff changeset
   114
ENDIF(NOT PROFILE_ARB1)
02c0f0afb39a - Add ability to build MojoShader as a shared library
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1134
diff changeset
   115
IF(NOT PROFILE_ARB1_NV)
02c0f0afb39a - Add ability to build MojoShader as a shared library
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1134
diff changeset
   116
    ADD_DEFINITIONS(-DSUPPORT_PROFILE_ARB1_NV=0)
02c0f0afb39a - Add ability to build MojoShader as a shared library
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1134
diff changeset
   117
ENDIF(NOT PROFILE_ARB1_NV)
1172
55700e64bd8c Make Metal profile optional in the CMake project.
Ryan C. Gordon <icculus@icculus.org>
parents: 1166
diff changeset
   118
IF(NOT PROFILE_METAL)
55700e64bd8c Make Metal profile optional in the CMake project.
Ryan C. Gordon <icculus@icculus.org>
parents: 1166
diff changeset
   119
    ADD_DEFINITIONS(-DSUPPORT_PROFILE_METAL=0)
1187
0687a8d78a54 Add COMPILER_SUPPORT CMake flag, do not build effect/compiler files if disabled
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1172
diff changeset
   120
ENDIF(NOT PROFILE_METAL)
1150
02c0f0afb39a - Add ability to build MojoShader as a shared library
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1134
diff changeset
   121
02c0f0afb39a - Add ability to build MojoShader as a shared library
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1134
diff changeset
   122
IF(EFFECT_SUPPORT)
02c0f0afb39a - Add ability to build MojoShader as a shared library
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1134
diff changeset
   123
    IF(UNIX)
02c0f0afb39a - Add ability to build MojoShader as a shared library
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1134
diff changeset
   124
        SET(LIBM -lm)
02c0f0afb39a - Add ability to build MojoShader as a shared library
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1134
diff changeset
   125
    ENDIF(UNIX)
02c0f0afb39a - Add ability to build MojoShader as a shared library
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1134
diff changeset
   126
    ADD_DEFINITIONS(-DMOJOSHADER_EFFECT_SUPPORT)
02c0f0afb39a - Add ability to build MojoShader as a shared library
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1134
diff changeset
   127
ENDIF(EFFECT_SUPPORT)
02c0f0afb39a - Add ability to build MojoShader as a shared library
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1134
diff changeset
   128
02c0f0afb39a - Add ability to build MojoShader as a shared library
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1134
diff changeset
   129
IF(FLIP_VIEWPORT)
02c0f0afb39a - Add ability to build MojoShader as a shared library
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1134
diff changeset
   130
    ADD_DEFINITIONS(-DMOJOSHADER_FLIP_RENDERTARGET)
02c0f0afb39a - Add ability to build MojoShader as a shared library
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1134
diff changeset
   131
ENDIF(FLIP_VIEWPORT)
02c0f0afb39a - Add ability to build MojoShader as a shared library
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1134
diff changeset
   132
02c0f0afb39a - Add ability to build MojoShader as a shared library
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1134
diff changeset
   133
IF(DEPTH_CLIPPING)
02c0f0afb39a - Add ability to build MojoShader as a shared library
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1134
diff changeset
   134
    ADD_DEFINITIONS(-DMOJOSHADER_DEPTH_CLIPPING)
02c0f0afb39a - Add ability to build MojoShader as a shared library
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1134
diff changeset
   135
ENDIF(DEPTH_CLIPPING)
02c0f0afb39a - Add ability to build MojoShader as a shared library
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1134
diff changeset
   136
02c0f0afb39a - Add ability to build MojoShader as a shared library
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1134
diff changeset
   137
IF(XNA4_VERTEXTEXTURE)
02c0f0afb39a - Add ability to build MojoShader as a shared library
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1134
diff changeset
   138
    ADD_DEFINITIONS(-DMOJOSHADER_XNA4_VERTEX_TEXTURES)
02c0f0afb39a - Add ability to build MojoShader as a shared library
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1134
diff changeset
   139
ENDIF(XNA4_VERTEXTEXTURE)
02c0f0afb39a - Add ability to build MojoShader as a shared library
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1134
diff changeset
   140
02c0f0afb39a - Add ability to build MojoShader as a shared library
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1134
diff changeset
   141
IF(BUILD_SHARED)
02c0f0afb39a - Add ability to build MojoShader as a shared library
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1134
diff changeset
   142
    SET(LIBRARY_FORMAT SHARED)
02c0f0afb39a - Add ability to build MojoShader as a shared library
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1134
diff changeset
   143
ELSE(BUILD_SHARED)
02c0f0afb39a - Add ability to build MojoShader as a shared library
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1134
diff changeset
   144
    SET(LIBRARY_FORMAT STATIC)
02c0f0afb39a - Add ability to build MojoShader as a shared library
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1134
diff changeset
   145
ENDIF(BUILD_SHARED)
02c0f0afb39a - Add ability to build MojoShader as a shared library
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1134
diff changeset
   146
02c0f0afb39a - Add ability to build MojoShader as a shared library
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1134
diff changeset
   147
ADD_LIBRARY(mojoshader ${LIBRARY_FORMAT}
465
0a75f98f785b Initial work on assembler. Not even close to done.
Ryan C. Gordon <icculus@icculus.org>
parents: 455
diff changeset
   148
    mojoshader.c
732
e070fea1f8c7 Added mojoshader_common.c with first shot at generic hashtable.
Ryan C. Gordon <icculus@icculus.org>
parents: 714
diff changeset
   149
    mojoshader_common.c
465
0a75f98f785b Initial work on assembler. Not even close to done.
Ryan C. Gordon <icculus@icculus.org>
parents: 455
diff changeset
   150
    mojoshader_opengl.c
0a75f98f785b Initial work on assembler. Not even close to done.
Ryan C. Gordon <icculus@icculus.org>
parents: 455
diff changeset
   151
)
1187
0687a8d78a54 Add COMPILER_SUPPORT CMake flag, do not build effect/compiler files if disabled
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1172
diff changeset
   152
IF(EFFECT_SUPPORT)
0687a8d78a54 Add COMPILER_SUPPORT CMake flag, do not build effect/compiler files if disabled
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1172
diff changeset
   153
    TARGET_SOURCES(mojoshader PRIVATE
0687a8d78a54 Add COMPILER_SUPPORT CMake flag, do not build effect/compiler files if disabled
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1172
diff changeset
   154
        mojoshader_effects.c
0687a8d78a54 Add COMPILER_SUPPORT CMake flag, do not build effect/compiler files if disabled
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1172
diff changeset
   155
    )
0687a8d78a54 Add COMPILER_SUPPORT CMake flag, do not build effect/compiler files if disabled
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1172
diff changeset
   156
ENDIF(EFFECT_SUPPORT)
0687a8d78a54 Add COMPILER_SUPPORT CMake flag, do not build effect/compiler files if disabled
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1172
diff changeset
   157
IF(COMPILER_SUPPORT)
0687a8d78a54 Add COMPILER_SUPPORT CMake flag, do not build effect/compiler files if disabled
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1172
diff changeset
   158
    TARGET_SOURCES(mojoshader PRIVATE
0687a8d78a54 Add COMPILER_SUPPORT CMake flag, do not build effect/compiler files if disabled
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1172
diff changeset
   159
        mojoshader_compiler.c
0687a8d78a54 Add COMPILER_SUPPORT CMake flag, do not build effect/compiler files if disabled
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1172
diff changeset
   160
        mojoshader_preprocessor.c
0687a8d78a54 Add COMPILER_SUPPORT CMake flag, do not build effect/compiler files if disabled
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1172
diff changeset
   161
        mojoshader_lexer.c
0687a8d78a54 Add COMPILER_SUPPORT CMake flag, do not build effect/compiler files if disabled
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1172
diff changeset
   162
        mojoshader_assembler.c
0687a8d78a54 Add COMPILER_SUPPORT CMake flag, do not build effect/compiler files if disabled
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1172
diff changeset
   163
    )
0687a8d78a54 Add COMPILER_SUPPORT CMake flag, do not build effect/compiler files if disabled
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1172
diff changeset
   164
ENDIF(COMPILER_SUPPORT)
1150
02c0f0afb39a - Add ability to build MojoShader as a shared library
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1134
diff changeset
   165
IF(BUILD_SHARED)
02c0f0afb39a - Add ability to build MojoShader as a shared library
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1134
diff changeset
   166
    TARGET_LINK_LIBRARIES(mojoshader ${LIBM} ${CARBON_FRAMEWORK})
02c0f0afb39a - Add ability to build MojoShader as a shared library
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1134
diff changeset
   167
ENDIF(BUILD_SHARED)
1036
8a3597b44ff7 First shot at preshader interpreter. Completely untested!
Ryan C. Gordon <icculus@icculus.org>
parents: 1019
diff changeset
   168
711
d547597e81de Cleaned up some CMake issues.
Ryan C. Gordon <icculus@icculus.org>
parents: 710
diff changeset
   169
SET_SOURCE_FILES_PROPERTIES(
d547597e81de Cleaned up some CMake issues.
Ryan C. Gordon <icculus@icculus.org>
parents: 710
diff changeset
   170
    mojoshader_compiler.c
714
e8ed66bfff18 Make parser generate a header, to avoid external project build confusion.
Ryan C. Gordon <icculus@icculus.org>
parents: 711
diff changeset
   171
    PROPERTIES OBJECT_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/mojoshader_parser_hlsl.h"
711
d547597e81de Cleaned up some CMake issues.
Ryan C. Gordon <icculus@icculus.org>
parents: 710
diff changeset
   172
)
d547597e81de Cleaned up some CMake issues.
Ryan C. Gordon <icculus@icculus.org>
parents: 710
diff changeset
   173
569
117d6e606c4e Cleaned up CMakeLists.txt to work in the absence of external tools.
Ryan C. Gordon <icculus@icculus.org>
parents: 563
diff changeset
   174
FIND_PROGRAM(RE2C re2c DOC "Path to re2c command line app: http://re2c.org/")
117d6e606c4e Cleaned up CMakeLists.txt to work in the absence of external tools.
Ryan C. Gordon <icculus@icculus.org>
parents: 563
diff changeset
   175
IF(NOT RE2C)
117d6e606c4e Cleaned up CMakeLists.txt to work in the absence of external tools.
Ryan C. Gordon <icculus@icculus.org>
parents: 563
diff changeset
   176
    MESSAGE(STATUS "re2c missing. You can go on, but can't rebuild the lexer.")
117d6e606c4e Cleaned up CMakeLists.txt to work in the absence of external tools.
Ryan C. Gordon <icculus@icculus.org>
parents: 563
diff changeset
   177
ELSE(NOT RE2C)
117d6e606c4e Cleaned up CMakeLists.txt to work in the absence of external tools.
Ryan C. Gordon <icculus@icculus.org>
parents: 563
diff changeset
   178
    MARK_AS_ADVANCED(RE2C)
117d6e606c4e Cleaned up CMakeLists.txt to work in the absence of external tools.
Ryan C. Gordon <icculus@icculus.org>
parents: 563
diff changeset
   179
    ADD_CUSTOM_COMMAND(
705
7ea12a852213 Throw some quotes around strings in CMakeLists.txt ...
Ryan C. Gordon <icculus@icculus.org>
parents: 669
diff changeset
   180
        OUTPUT "${CMAKE_CURRENT_SOURCE_DIR}/mojoshader_lexer.c"
569
117d6e606c4e Cleaned up CMakeLists.txt to work in the absence of external tools.
Ryan C. Gordon <icculus@icculus.org>
parents: 563
diff changeset
   181
        DEPENDS mojoshader_lexer.re
705
7ea12a852213 Throw some quotes around strings in CMakeLists.txt ...
Ryan C. Gordon <icculus@icculus.org>
parents: 669
diff changeset
   182
        COMMAND "${RE2C}"
7ea12a852213 Throw some quotes around strings in CMakeLists.txt ...
Ryan C. Gordon <icculus@icculus.org>
parents: 669
diff changeset
   183
        ARGS -is --no-generation-date -o "${CMAKE_CURRENT_SOURCE_DIR}/mojoshader_lexer.c" "${CMAKE_CURRENT_SOURCE_DIR}/mojoshader_lexer.re"
569
117d6e606c4e Cleaned up CMakeLists.txt to work in the absence of external tools.
Ryan C. Gordon <icculus@icculus.org>
parents: 563
diff changeset
   184
    )
117d6e606c4e Cleaned up CMakeLists.txt to work in the absence of external tools.
Ryan C. Gordon <icculus@icculus.org>
parents: 563
diff changeset
   185
ENDIF(NOT RE2C)
563
d22551643fcb Added re2c step to build.
Ryan C. Gordon <icculus@icculus.org>
parents: 555
diff changeset
   186
1134
be31bd0ee0a2 Moved to SDL2.
Ryan C. Gordon <icculus@icculus.org>
parents: 1036
diff changeset
   187
find_path(SDL2_INCLUDE_DIR SDL.h PATH_SUFFIXES include/SDL2)
be31bd0ee0a2 Moved to SDL2.
Ryan C. Gordon <icculus@icculus.org>
parents: 1036
diff changeset
   188
find_library(SDL2 NAMES SDL2 PATH_SUFFIXES lib)
be31bd0ee0a2 Moved to SDL2.
Ryan C. Gordon <icculus@icculus.org>
parents: 1036
diff changeset
   189
IF(SDL2)
be31bd0ee0a2 Moved to SDL2.
Ryan C. Gordon <icculus@icculus.org>
parents: 1036
diff changeset
   190
    INCLUDE_DIRECTORIES(${SDL2_INCLUDE_DIR})
588
ef3d2efa822d Moved all the test and utility programs to a "utils" directory.
Ryan C. Gordon <icculus@icculus.org>
parents: 569
diff changeset
   191
    ADD_EXECUTABLE(glcaps utils/glcaps.c)
1134
be31bd0ee0a2 Moved to SDL2.
Ryan C. Gordon <icculus@icculus.org>
parents: 1036
diff changeset
   192
    TARGET_LINK_LIBRARIES(glcaps ${SDL2} ${LIBM} ${CARBON_FRAMEWORK})
588
ef3d2efa822d Moved all the test and utility programs to a "utils" directory.
Ryan C. Gordon <icculus@icculus.org>
parents: 569
diff changeset
   193
    ADD_EXECUTABLE(bestprofile utils/bestprofile.c)
1134
be31bd0ee0a2 Moved to SDL2.
Ryan C. Gordon <icculus@icculus.org>
parents: 1036
diff changeset
   194
    TARGET_LINK_LIBRARIES(bestprofile mojoshader ${SDL2} ${LIBM} ${CARBON_FRAMEWORK})
588
ef3d2efa822d Moved all the test and utility programs to a "utils" directory.
Ryan C. Gordon <icculus@icculus.org>
parents: 569
diff changeset
   195
    ADD_EXECUTABLE(availableprofiles utils/availableprofiles.c)
1134
be31bd0ee0a2 Moved to SDL2.
Ryan C. Gordon <icculus@icculus.org>
parents: 1036
diff changeset
   196
    TARGET_LINK_LIBRARIES(availableprofiles mojoshader ${SDL2} ${LIBM} ${CARBON_FRAMEWORK})
be31bd0ee0a2 Moved to SDL2.
Ryan C. Gordon <icculus@icculus.org>
parents: 1036
diff changeset
   197
ENDIF(SDL2)
169
7e9d90724cf8 Push parsed shaders through GLSL compiler to see what breaks.
Ryan C. Gordon <icculus@icculus.org>
parents: 153
diff changeset
   198
1187
0687a8d78a54 Add COMPILER_SUPPORT CMake flag, do not build effect/compiler files if disabled
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1172
diff changeset
   199
IF(COMPILER_SUPPORT)
0687a8d78a54 Add COMPILER_SUPPORT CMake flag, do not build effect/compiler files if disabled
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1172
diff changeset
   200
    ADD_EXECUTABLE(finderrors utils/finderrors.c)
0687a8d78a54 Add COMPILER_SUPPORT CMake flag, do not build effect/compiler files if disabled
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1172
diff changeset
   201
    TARGET_LINK_LIBRARIES(finderrors mojoshader ${SDL2} ${LIBM} ${CARBON_FRAMEWORK})
0687a8d78a54 Add COMPILER_SUPPORT CMake flag, do not build effect/compiler files if disabled
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1172
diff changeset
   202
    IF(SDL2)
0687a8d78a54 Add COMPILER_SUPPORT CMake flag, do not build effect/compiler files if disabled
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1172
diff changeset
   203
        SET_SOURCE_FILES_PROPERTIES(
0687a8d78a54 Add COMPILER_SUPPORT CMake flag, do not build effect/compiler files if disabled
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1172
diff changeset
   204
            utils/finderrors.c
0687a8d78a54 Add COMPILER_SUPPORT CMake flag, do not build effect/compiler files if disabled
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1172
diff changeset
   205
            PROPERTIES COMPILE_FLAGS "-DFINDERRORS_COMPILE_SHADERS=1"
0687a8d78a54 Add COMPILER_SUPPORT CMake flag, do not build effect/compiler files if disabled
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1172
diff changeset
   206
        )
0687a8d78a54 Add COMPILER_SUPPORT CMake flag, do not build effect/compiler files if disabled
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1172
diff changeset
   207
    ENDIF(SDL2)
0687a8d78a54 Add COMPILER_SUPPORT CMake flag, do not build effect/compiler files if disabled
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1172
diff changeset
   208
ENDIF(COMPILER_SUPPORT)
711
d547597e81de Cleaned up some CMake issues.
Ryan C. Gordon <icculus@icculus.org>
parents: 710
diff changeset
   209
588
ef3d2efa822d Moved all the test and utility programs to a "utils" directory.
Ryan C. Gordon <icculus@icculus.org>
parents: 569
diff changeset
   210
ADD_EXECUTABLE(testparse utils/testparse.c)
1134
be31bd0ee0a2 Moved to SDL2.
Ryan C. Gordon <icculus@icculus.org>
parents: 1036
diff changeset
   211
TARGET_LINK_LIBRARIES(testparse mojoshader ${LIBM} ${CARBON_FRAMEWORK})
588
ef3d2efa822d Moved all the test and utility programs to a "utils" directory.
Ryan C. Gordon <icculus@icculus.org>
parents: 569
diff changeset
   212
ADD_EXECUTABLE(testoutput utils/testoutput.c)
1134
be31bd0ee0a2 Moved to SDL2.
Ryan C. Gordon <icculus@icculus.org>
parents: 1036
diff changeset
   213
TARGET_LINK_LIBRARIES(testoutput mojoshader ${LIBM} ${CARBON_FRAMEWORK})
1187
0687a8d78a54 Add COMPILER_SUPPORT CMake flag, do not build effect/compiler files if disabled
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1172
diff changeset
   214
IF(COMPILER_SUPPORT)
0687a8d78a54 Add COMPILER_SUPPORT CMake flag, do not build effect/compiler files if disabled
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1172
diff changeset
   215
    ADD_EXECUTABLE(mojoshader-compiler utils/mojoshader-compiler.c)
0687a8d78a54 Add COMPILER_SUPPORT CMake flag, do not build effect/compiler files if disabled
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1172
diff changeset
   216
    TARGET_LINK_LIBRARIES(mojoshader-compiler mojoshader ${LIBM} ${CARBON_FRAMEWORK})
0687a8d78a54 Add COMPILER_SUPPORT CMake flag, do not build effect/compiler files if disabled
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1172
diff changeset
   217
ENDIF(COMPILER_SUPPORT)
1
99ac16070d07 [svn] Initial add.
icculus
parents:
diff changeset
   218
737
d028bf9d8096 Wired up unit tests to CMakefile.
Ryan C. Gordon <icculus@icculus.org>
parents: 732
diff changeset
   219
# Unit tests...
1187
0687a8d78a54 Add COMPILER_SUPPORT CMake flag, do not build effect/compiler files if disabled
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1172
diff changeset
   220
IF(COMPILER_SUPPORT)
0687a8d78a54 Add COMPILER_SUPPORT CMake flag, do not build effect/compiler files if disabled
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1172
diff changeset
   221
    ADD_CUSTOM_TARGET(
0687a8d78a54 Add COMPILER_SUPPORT CMake flag, do not build effect/compiler files if disabled
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1172
diff changeset
   222
        test
0687a8d78a54 Add COMPILER_SUPPORT CMake flag, do not build effect/compiler files if disabled
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1172
diff changeset
   223
        COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/unit_tests/run_tests.pl"
0687a8d78a54 Add COMPILER_SUPPORT CMake flag, do not build effect/compiler files if disabled
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1172
diff changeset
   224
        WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
0687a8d78a54 Add COMPILER_SUPPORT CMake flag, do not build effect/compiler files if disabled
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1172
diff changeset
   225
        DEPENDS mojoshader-compiler
0687a8d78a54 Add COMPILER_SUPPORT CMake flag, do not build effect/compiler files if disabled
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1172
diff changeset
   226
        COMMENT "Running unit tests..."
0687a8d78a54 Add COMPILER_SUPPORT CMake flag, do not build effect/compiler files if disabled
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1172
diff changeset
   227
        VERBATIM
0687a8d78a54 Add COMPILER_SUPPORT CMake flag, do not build effect/compiler files if disabled
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1172
diff changeset
   228
    )
0687a8d78a54 Add COMPILER_SUPPORT CMake flag, do not build effect/compiler files if disabled
Ethan Lee <flibitijibibo@flibitijibibo.com>
parents: 1172
diff changeset
   229
ENDIF(COMPILER_SUPPORT)
737
d028bf9d8096 Wired up unit tests to CMakefile.
Ryan C. Gordon <icculus@icculus.org>
parents: 732
diff changeset
   230
1
99ac16070d07 [svn] Initial add.
icculus
parents:
diff changeset
   231
# End of CMakeLists.txt ...
99ac16070d07 [svn] Initial add.
icculus
parents:
diff changeset
   232